Tag: 通道

在node.js中运行websocket-rails javascript客户端

我试图从我的web服务器从websocket检索数据。 远程主机上的websocket服务器运行websocket-rails。 从Websocket-rails github项目页面( https://github.com/websocket-rails )我使用javascript客户端代码将一个web套接字客户端放在一个html文件中。 也就是说,我将github上的/ lib / assets / javascripts / websocket_rails中的所有CoffeeScript文件的内容复制到一个单独的文件中,然后用js2coffee.org进行编译(可能是更好的解决scheme,但是我可能是更好的解决scheme现在注意到)。 然后添加几行连接到远程Web套接字并订阅频道。 (通道部分实际上是为什么我使用WebSocket-rails客户端,而不是一个“正常”的Web套接字连接,因为我不知道如何通过一个“正常的”websocket连接连接后订阅一个通道)。 到现在为止还挺好。 当使用浏览器和下面的代码时,我可以从远程主机上的websocket连接到一个通道,并将消息发送到控制台。 <!DOCTYPE html> <meta charset="utf-8" /> <title>WebSocket Test</title> <script language="javascript" type="text/javascript"> (function() { var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) […]

Socket.io:命名空间,渠道和合作

我有一个Node.js Web服务器,它运行一个使用Socket.io创build的顶层套接字服务器。 基本上,这工作。 我现在想要实现的是,连接的客户端被分组。 所以可能会有一些组成A组的客户和其他一些组成B组的客户。他们应该通过特定的URL( localhost:3000/A或localhost:3000/B来select他们属于哪个组。 在Socket.io中,我现在想发送消息给A组中的所有客户端,或者B组中的所有客户端或所有客户端,而不必查看他们的组。 这基本上就像是和房间聊天,你可以给特定房间内的所有客户或任何客户留言,不pipe他在哪个房间。 使用Socket.iodevise这样一个系统的最佳方法是什么? 到目前为止,我一直在尝试使用命名空间,这基本上可以创build组A和B,但是我无法将消息发送到所有客户端,无论他们在哪个房间。至less我不知道该怎么做这个。 我应该如何build模? 什么是我应该寻找的正确的条件? 更新:根据@sdedelbrock的答案,我可以使用命名空间或房间: 如果使用命名空间,我不能长时间发送给每个人,不pipe他们的命名空间。 这是因为io.sockets是io.of('')的快捷方式,当然这与命名空间不再匹配。 这意味着我应该使用房间,但是我想知道房间和命名空间之间的语义差异是什么。 简而言之:为什么同一个(?)想法有两个概念?