问题标签 [socket.io]

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 投票
6 回答
52784 浏览

python - Python 中的 Socket.IO 客户端库

任何人都可以推荐 Python 的 Socket.IO 客户端库吗?我环顾四周,但我唯一能找到的要么是服务器实现,要么依赖于诸如 Twisted 之类的框架。

我需要一个不依赖于其他框架的客户端库。

仅使用多种连接类型中的一种是不够的,因为 python 客户端将需要使用多个 socketio 服务器,例如,其中许多服务器不支持 websocket。

0 投票
8 回答
18588 浏览

ajax - 在 ajax 可以做的地方使用 websocket/socket.io 有什么缺点?

之前也有人问过类似的问题,他们都得出了 AJAX 不会过时的结论。但是 ajax 在哪些方面比 websockets 更好呢?

使用 socket.io,很容易退回到 flash 或 long polling,因此浏览器兼容性似乎不是问题。

Websockets 是双向的。ajax 会发出异步请求,websocket 客户端会向服务器发送消息。POST/GET 参数可以用 JSON 编码。

那么使用 100% websockets 有什么问题呢?如果每个访问者都与服务器保持持久的 websocket 连接,那会比在整个访问会话中发出一些 ajax 请求更浪费吗?

0 投票
1 回答
744 浏览

java - 哪个网络服务器用于托管 socket.io-java?

我对 groovy/java 很陌生。我想托管一个 socket.io-java 服务器(https://github.com/tadglines/Socket.IO-Java)。

在 python 中,我使用 gevent (https://bitbucket.org/Jeffrey/gevent-socketio) 来托管类似的服务,因为它提供了一个高效的无阻塞 io 事件循环。

java 世界中哪个容器提供了这样的事件循环并且适合这项工作?

谢谢

0 投票
2 回答
2384 浏览

node.js - SocketIO + 节点 - 恢复丢失的连接

我使用 socketio/node,向浏览器输出一些时髦的统计数据,所有标准的东西。我正在使用这两个库的最新版本。现在,我有几个问题:

1)节点日志中的警告信息:

这是 XHR 警告的一个示例,我可以理解为 XHR 的本质是多个连接/断开连接。但是,当我有相当多的客户端通过其他传输连接时,我会得到相同的结果。

2) 随机连接丢失。由于某些莫名其妙的原因,连接随机退出。这不是机器或浏览器,甚至不是特定于传输的。浏览器上的连接将随机停止接收更新。节点日志中没有特定的断开连接消息,手动刷新浏览器可以解决问题。

那么,我想知道的是 - 这两个问题是相关的还是单独的问题?您是否经历过这些连接中断?如果是这样,你是如何设法解决它们的?它非常令人沮丧,因为它接近于 100% 完美。我很想感到温暖和舒适,因为所有查看我的应用程序页面的客户都会在几个小时甚至几天内收到一致的更新,如果他们愿意的话。

非常感谢您的帮助和建议!

干杯,

皮特

0 投票
3 回答
31809 浏览

websocket - Faye 与 Socket.IO(和剑圣)

Socket.IO似乎是最流行和最活跃的 WebSocket 仿真库。Juggernaut使用它来创建一个完整的发布/订阅系统。

Faye也很受欢迎和活跃,并且拥有自己的 javascript 库,使其完整的功能可以与剑圣相媲美。Juggernaut 使用节点作为其服务器,而 Faye 可以使用节点或机架。Juggernaut 使用 Redis 进行持久化(更正:它使用 Redis 进行发布/订阅),而 Faye 仅将状态保存在内存中。

  1. 上面的一切都是准确的吗?
  2. Faye 说它实现了Bayeux——我认为 Juggernaut 没有这样做——是因为 Juggernaut 级别较低(IE,我可以使用 Juggernaut 实现 Bayeux)
  3. 如果 Faye 愿意,是否可以切换到使用 Socket.IO 浏览器 JavaScript 库?还是他们的 javascript 库做了根本不同的事情?
  4. 项目之间是否存在其他架构/设计/理念差异?
0 投票
3 回答
8438 浏览

ruby - ruby 中的 socket.io 和 eventmachine

我正在尝试一个非常基本的服务器/客户端演示。我在客户端(浏览器中的用户)上使用 socket.io,在服务器上使用 eventmachine Echo 示例。理想情况下,socket.io 应该向服务器发送请求,服务器将打印接收到的数据。不幸的是,有些事情并没有像我期望的那样工作。

源码贴在这里:

这是红宝石代码:

0 投票
3 回答
368 浏览

javascript - JSON没有正确序列化......我想?

我有一个使用 socket.io 的 Node.js 项目。在其中,我尝试将对象从客户端发送到服务器,如下所示:

当它到达服务器时,我调用JSON.parse它,并检查是否object.type == 'msg'. 当我运行代码并调用console.log(object.type)它时返回"msg",但object.type == 'msg'返回 false。这里发生了什么?

编辑:

失败的代码的相关部分是:

每当有消息进来时,msg就会打印出来,但不会yay!

0 投票
1 回答
549 浏览

node.js - 使用 Node.js 和 Socket.io 获取将一些数据推送到客户端的静态请求

我是 Node.js 的新手,我一直在玩Socket.io安装包提供的“聊天”示例。在几行代码中展示了如何以推送方式(无拉取)将一些数据推送到多个客户端(浏览器)。

这是服务器端的代码:http: //pastie.org/1537175

我知道如何使用 client.broadcast(msg) 向客户端发送消息,但我不知道如何在

io.on('连接', 函数(客户端){ ... }

环形

我想在有人点击特定 url(如'/test.html')时调用 client.broadcast(msg),请参见第 32 行。请求“/test.html”的设备不是典型的“启用 ajax”浏览器,而仅仅是基于文本的浏览器,因此我无法初始化与服务器的异步请求。任何想法?

谢谢你。

0 投票
2 回答
7518 浏览

node.js - node.js & socket.io 使用客户端特定变量

变量“玩家”是客户端独有的吗?如何从另一个函数获取/设置此变量?

谢谢。

0 投票
1 回答
688 浏览

asynchronous - 在实时 Web 应用程序中处理服务器响应的上下文

很难描述这个问题 - 如果您知道更多相关术语,请进行编辑。

我正在构建一个 Web 应用程序,它基本上使用 Redis (PubSub) + Node.js + Socket.IO 作为分发服务器。

我有双向通信没有问题 - 但我需要能够从客户端(异步)向服务器发出请求并处理响应,同时仍处理可能在它之前出现的其他不相关响应。

这是我到目前为止所拥有的,但我对这种方法并不特别满意:

服务器

客户

tl; dr:我需要向服务器“询问”一些事情,然后使用 Socket.IO 处理响应。