问题标签 [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.

0 投票
0 回答
87 浏览

javascript - 使用 sockjs 或 dnode 作为 nowjs 的可能替代品的远程调用

我正在寻找 Nowjs 的替代方案,用于从 NODEJS 服务器上的客户端进行远程函数调用,并且偶然发现 dnode 和 sockjs 作为可能的选项。有人可以指出彼此之间的区别和优势,或者我是否应该查看其他模块?

0 投票
1 回答
3127 浏览

python - 如何避免高cpu使用率?

我创建了一个zmq_forwarder.py单独运行的程序,它将消息从应用程序传递到 sockJS 连接,我目前正在研究烧瓶应用程序如何通过 zmq 从 sockJS 接收消息。我正在粘贴我的内容zmq_forwarder.py。我是 ZMQ 的新手,我不知道为什么每次运行它时,它都会使用 100% 的 CPU 负载。

如您所见,我设置了 4 个套接字。该应用程序连接到端口 5561 以将数据推送到 zmq,并连接到端口 5562 以从 zmq 接收(尽管我仍在弄清楚如何实际设置它以侦听 zmq 发送的消息)。另一方面,sockjs 在 5564 端口从 zmq 接收数据,并在 5563 端口向它发送数据。

我已经阅读了zmq.DONTWAIT消息的异步和非阻塞接收,所以我添加了它。

有没有办法改进代码,以免 CPU 过载?目标是能够使用 zmq 在烧瓶应用程序和 websocket 之间传递消息。

0 投票
0 回答
758 浏览

spring - SockJS 与 IE8 的安全连接

大家下午。我遇到了 sockjs 和 Spring4 的问题。我不知道设置的哪一侧导致了问题。问题是我似乎无法让 IE8 通过 HTTPS 打开与我的 Spring 后端的连接。

我正在尝试实施此示例:https ://demo.rasc.ch/spring4ws/ 我正在尝试的链接是聊天。他的来源链接在这里:https ://github.com/ralscha/spring4ws-demos

我对他的源代码所做的唯一更改是我使用的是 jquery-1.9.1、Spring 4.0.0 和完整的 stomp.js 而不是 stomp.min.js

聊天客户端的索引页中的 sock 和 stomp 代码为: $(function() { var username, lastUsername, stompClient, content = $("#content")[0], input = $("#editor input" )[0];

对不起格式。

在 Spring 中,我所做的只是将 webconfig java 文件分成 2 个文件

WebConfig 是标准的。扩展 WebMvcConfigurerAdapter :

}

WebSocket 实现 WebSocketMessageBrokerConfigurer:

初始化器也是基本的。

我也在使用 Eclipse 通过 Tomcat 7 运行它。所以不是嵌入式tomcat。

我遇到的问题是 sock 中的 readystate 在 IE 中被设置为永久状态。我不完全理解 xhr/xdr 轮询,但我假设这就是问题所在。

我还需要做什么才能让 IE 在 sockjs 端或 spring 端通过 https 工作?

0 投票
5 回答
10904 浏览

apache - 如何为 Meteor/SockJS 和 WebSocket 设置 apache 代理?

我有一个流星应用程序的 apache 代理,而 apache 和流星在两台不同的机器上。我需要它,因为 apache 必须为许多真实网站提供服务,并且由于资源有限,在这台机器上安装流星应用程序并不是一个好主意。

但是,如果我尝试通过代理从外部连接,WebSocket 握手会失败,响应代码为 400“只能升级到 websocket”。当我从局域网内直接连接到流星机器时,一切正常。当 WebSocket 失败时,SockJS/Meteor 会退回到 XHR,但不幸的是,这会在相关应用程序中带来一些错误。所以我真的需要 WebSocket 在大多数情况下工作。

我使用此处提到的补丁修补了我的 apache 安装:https ://stackoverflow.com/a/16998664 看起来进展顺利,但没有任何改变......

我的 apache 代理指令目前如下:

我什至知道是什么引发了问题。apache 代理弄乱了标头。离开我机器的相关数据包的原始请求标头如下所示:

当数据包从 apache 代理转发时,如下所示:

所以“升级”被删除,“连接”被改变,所以 websocket 握手失败。现在我可以尝试始终使用 RequestHeader 指令将“升级”设置为“websocket”。然而这感觉不对,我想它会带来其他问题,所以我想知道这个问题是否有真正的解决方案?或者这是来自https://stackoverflow.com/a/16998664的补丁应该解决的问题,而我在应用它时出了点问题?

从我读到的切换到 nginx 可以使这个设置更容易。我会考虑这一点,但如果可能的话,我想用 apache 来做这件事,因为 nginx 会使其他事情变得更加复杂并花费我很多时间。

0 投票
1 回答
1070 浏览

header - ActiveMQ - STOMP 订阅选择器失败

客户端设置以在 STOMP 订阅上实现选择器。

订阅返回一条记录到框架控制台的消息,例如:

由于选择器,消息不应该被过滤掉吗?我的选择器的语法?

将语法更改为以下也不起作用。在这种情况下,根本没有返回任何消息。

我错过了什么?

0 投票
1 回答
690 浏览

javascript - 强制与服务器端 sockjs node.js 断开连接

如何使用 sockjs 强制断开与服务器端的连接?我已经很好地查看了主页,但没有运气。我想象它是这样的(但这是一种未知的方法):

自从我写了我的 sockjs 项目的基础已经快一年了,再次回到较低的级别,我什至找不到我的旧代码(如 'server.close()' )在哪里指定,文档去哪里了?(关于关闭特定客户的问题)

0 投票
3 回答
21600 浏览

websocket - Engine.io 或 SockJS,选择哪一个?

我最近在 Socket.io 上遇到了关于内存泄漏和扩展问题的麻烦。我决定使用 Socket.io 是在一年前做出的,当时它无疑是最好的库。

现在 Socket.io 引起了很多麻烦,我花时间寻找同时可用的替代方案,并认为 Engine.io 和 SockJS 通常都非常适合我。但是,在我看来,两者都有一些缺点,我不确定该选择哪一个。

Engine.io 基本上是 Socket.io 的完美轻量级版本,它不包含我不需要的所有功能。我已经为 Socket.io 编写了自己的重新连接和心跳逻辑,因为我对默认逻辑不满意,而且我从未打算使用 Socket.io 提供的房间或其他功能。

但是 - 在我看来 - Engine.io 的主要缺点是建立连接的方式。客户端从较慢的 jsonp-polling 开始,如果它们支持更好的传输,则会升级。与使用过时浏览器的客户端相比,原生支持 websockets 的客户端(数量稳步增加)的缺点是连接过程更长且不稳定,这与我对如何处理它的感觉相矛盾。

另一方面,SockJS 完全按照我的意愿处理连接。从我读到的内容来看,它似乎相当稳定,而 Engine.io 目前有一些问题。

我的应用程序在单个域上的 Nginx 路由器后面运行,因此我不需要 SockJS 提供的跨域功能。然而,由于提供了这个功能,SockJS 根本不会暴露客户端的 cookie 数据。到目前为止,我通过 cookie 和查询字符串令牌对 Socket.io 进行了 2 因素授权,而这对于 SockJS 是不可能的(使用 Engine.io 会)。

我已经阅读了几乎所有可用的内容以及两者的优缺点,但到目前为止似乎没有太多讨论或发布,尤其是关于 Engine.io (这里只有 8 个用 engine.io 标记的问题)。

  • 您更喜欢这两个库中的哪一个,出于什么原因?你在生产中使用它们吗?

  • 哪一个可能会得到更积极的维护,并且将来可能比另一个更有优势?

0 投票
0 回答
424 浏览

cordova - 如何在 Phonegap/Cordova Android 应用程序中创建 SockJS 客户端?

我一直在尝试让 Cordova (3.3) 应用程序与 SockJS 一起使用。我真的想要“真正的”websockets,也就是说,回退到 XHR(等)应该尽可能少。我一直在寻找各种插件和诸如此类的东西,但我还没有找到一个有效的组合。到目前为止,我只能让具有本机 websockets 的 Android 4.4x 设备工作。

是否有任何“已知良好”的插件用于此目的?

如果是这样,我如何将它们连接到 Cordova 应用程序,以便 SockJS-client 使用它们来初始化而不是尝试创建 websockets 并失败,然后是各种轮询方法?

0 投票
1 回答
6584 浏览

spring - Spring 4 websockets动态MessageMapping未执行

我在 Tomcat 8 上使用 Spring 4 websockets,我有以下配置:

我的 Spring 控制器有以下方法:

所以我在这里要做的是,如果客户端 1 想向客户端 2 发送消息,他使用/app/notify/2. 然后 Spring 控制器会将消息推送到 topic /topic/push/2

我在客户端中编写了以下代码:

连接完美,/project只是我的应用程序的上下文根。

我的客户端中也有以下代码来发送消息:

两个变量 (clientid) 都是可访问的,我没有从这部分代码中得到任何错误,并且我可以在控制台中看到消息实际上已发送:

但是,System.out.println()我的控制器中的语句永远不会执行,所以我认为我的控制器映射有问题或者我没有正确使用目标端点(我不明白为什么我必须在这里指定应用程序前缀,但不是连接到该端点时)。

0 投票
0 回答
578 浏览

javascript - sockjs 与 Android/iOS 应用程序相关吗?

我想创建一个聊天应用程序并以 19B 美元的价格被收购。从 sockjs 网页上它说:

“SockJS 旨在为所有现代浏览器和不支持 WebSocket 协议的环境工作,例如在限制性公司代理后面。”

如果我在专用子域的 80 端口上运行我的聊天服务器,那是否意味着即使在“限制性公司代理”之后,人们仍然可以使用它?与仅使用本机 Web 套接字相比,sockjs 在哪些情况下对移动应用程序有用?

仅供参考,该应用程序将是一个 phonegap 应用程序,聊天服务器将基于龙卷风。