问题标签 [sockjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何解决节点 js 中的 ReferenceError(未定义变量)
我是 javascript 的新手,我可能会问一些简单的问题。我正在尝试使用 nodeJs 的 SockJS、nodeJs 和 ssh2 模块开发一个项目。
我正在尝试使用 SockJS 库的客户端代码(websockets)将消息从 Chrome 发送到 NodeJS 服务器,然后通过 ssh2 模块从 NodeJs 发送到我的树莓派。问题是以下一个:
我知道在该函数中使用message var 可能不会起作用,但我无法找出解决方案。我可能缺乏一些关于函数的知识。任何帮助表示赞赏。谢谢你。
java - 使用 sockjs 踩过套接字无法与 Spring 4 WebSocket 连接
尝试使用 sockjs 在套接字上使用 Spring 4 WebSocket 和 STOMP。我遇到了一个问题。
我的配置:
websocket.xml - spring 上下文的一部分
控制器代码:
客户端:
输出:
我做错了什么?
我在 google 中找到了示例(TickerStocks 或类似的东西,问候应用程序(Spring 的示例)),所有这些都给了我同样的错误。我尝试使用带有握手的 WebSocket(没有 sockjs) - 结果相同)。
补充资料:
方法public AjaxResponse hello();
放置在根上下文“/”上的 IndexController 中。所以我可以提供完整的路径:http://localhost:8080/ws
。部署经过测试的tomcat7和tomcat8。
node.js - 使用 express 和 sockjs 进行用户身份验证
在 sockjs github 页面上写的 - cookie 不能用于用户身份验证。在哪里我可以阅读有关在 sockjs 中对用户进行身份验证的方法,最好举个例子。我不想使用 socket.io。
meteor - SockJS 和流星:如果负载均衡器不支持粘性会话怎么办?
我正在探索 Meteor 的平衡选项。这篇文章看起来很酷,它说应该支持以下内容来负载平衡 Meteor:
- Mongo 选配。否则,一个 Meteor 实例可能需要 10 秒才能从另一个实例获取更新,因为将使用轮询 Mongo 驱动程序,该驱动程序每 10 秒轮询一次 DB。
- 网络套接字。这也很清楚 - 否则客户端将回退到 HTTP 和长轮询,这将起作用,但它不如 Websocket 酷。
- 'SockJS 需要的粘性会话'。问题来了:
据我了解,“粘性会话支持”是在会话期间将一个客户端分配给同一服务器的东西。是必不可少的吗?如果我根本不配置粘性会话会发生什么?
这是我自己想到的:
- 因为 Meteor 将发送给客户端的所有数据都存储在内存中,如果客户端连接到 X 个服务器,那么将消耗 X 倍的内存
- 同一用户可能会在不同的选项卡或窗口中出现一些次要(或主要,如果没有 oplog)滞后,这可能会令人惊讶。
- 如果 SockJS 重新连接并希望一些数据在重新连接时保持不变,那将会很糟糕。我不确定 SockJS 是如何工作的,这点有效吗?
会发生什么坏事?这三点看起来还不错:数据是有效的、可用的,可能是以额外的内存消耗为代价的。
android - Grails 2.4 Spring Websocket SockJs Java Android 客户端
有没有人成功地从 android 连接到 sockJs 服务器?我在 android 客户端上有来自高速公路的这段代码:
此代码连接到 Grails 下 Spring 下的 sockJS 服务器。但是,代码在 5 秒后丢失连接。我不确定我需要做什么来告诉我正在听的 sockeJS 服务器。
javascript - 服务器推送:服务器如何判断消息是否已经发送到客户端?
我对服务器推送技术(websockets、socket.io、sockjs)非常陌生,所以这可能是一个非常新手的问题。但是,我的 google-fu 还没有强大到找到答案。
我正在使用 PHP 服务器端和 javascript 客户端编写“事件代码”应用程序。它是这样工作的:
- 当用户登录时,服务器会向他发送最后 10 个事件。这很简单!
- 然后,服务器在用户进入时向用户发送新事件。这就是我无法弄清楚的问题。
现在,我将事件存储在数据库中。服务器如何确定哪些事件是“新的”,哪些是“旧的”(即已经发送到客户端)?是否就像在每个事件的数据库中都有一个布尔列一样简单?
编辑:澄清我的问题:我知道如何设置服务器推送客户端......实际上,websockets、sockjs 和 socket.io 都有相同的 API,它们就是这样设计的。我也知道如何设置 PHP 在事件循环中运行。有这方面的教程。Python、Ruby 和 Javascript 也没有对此的原生支持,而是使用非原生框架来做到这一点。
我的问题具体是关于数据库交互的细节:例如,我的服务器端脚本如何知道数据库已经更新?轮询数据库是我能想到的唯一解决方案,但这似乎不是最优的。我使用的是 MySQL,所以它不是事件驱动的数据库。我使用 MySQL 的原因是该网站的其余部分使用 MySQL。不好的选择?我应该考虑过渡到不同的 DBMS 吗?或者可以让 MySQL 在这个应用程序中工作吗?
node.js - 关闭 SockJS 连接
我在我HAProxy
面前使用,连接似乎没有正确关闭SockJS servers
时遇到问题。SockJS
我的 NodeJS 代码:
sockjsSockets
计数可以例如显示:400 但显示HAProxy
3000ish 当前连接到那个NodeJS instance
我在这里的关闭过程中遗漏了什么吗?
有什么想法可能是错的吗?
编辑
这是我的HAProxy
配置
spring - Spring 4 WebSockets + SockJS - websocket:握手拦截器从未被调用
我正在测试 Spring 4 的不同 WebSocket 方法。
最基本的,运行良好,调用拦截器(我想发布 HttpSession 属性):
这是在调用拦截器时org.springframework.web.socket.server.support.WebSocketHttpRequestHandler.handleRequest()
:
但是,当我使用 SockJS 处理程序时,永远不会调用拦截器:
org.springframework.web.socket.sockjs.support.SockJsHttpRequestHandler
与 不同,它似乎WebSocketHttpRequestHandler
没有“拦截器”属性。
这是春天的错误吗?您知道将 HttpSessionAttributes 发布到 SockJS websockets 的任何方法吗?
android - 本机应用程序到服务器通信
我正在编写一个移动交易应用程序(android/ios),我需要有关将应用程序连接到服务器的最佳方式的建议(messageQ)
如果我使用原始 TCP 连接,如果我的用户位于公司 wifi 后面(受防火墙保护),他们会有问题吗?如果是,在这种情况下,网络套接字是更好的解决方案吗?
对于后端服务器,在使用 zeroMq 进行研究之后,我相信像 rabbitmq 这样的成熟代理是一个更好的选择。现在,如果我使用本地应用程序的 Web 套接字连接,Rabbit MQ 有一个 sockJS-AMQP 桥。但我不确定是否有 java 和 iOS Web 套接字客户端与 sockJS 服务器对话。非常感谢任何有经验的观点
node.js - 流星多标签共享状态
用户经常打开我的流星应用程序的多个选项卡。有没有办法让这些选项卡共享相同的连接(服务器上的状态),这样就没有多个冗余连接。我正在考虑自己想出一个包来做这件事,我想知道是否有人对此有任何想法。它应该有助于提高性能。