Articles of socket.io

NPM – 无法安装socket.IO

我正在尝试在npm上安装socket.io,以便在nodeJS服务器上使用。 首先,当我input“npm install socket.IO”时,我在日志中写了一些关于python和node-gyp的错误信息。 我安装了Python 2.7.3并设置了环境variables。 现在我得到了一个新的错误,这与Visual Studio有什么关系(VS和npm有什么关系?是关于编译器的?)。 错误是一样的在这里npm安装一些包(sqlite3,socket.io)失败,错误MSB8020在Windows 7上但是,当我在答案中使用的选项,而不是错误它告诉我有关可能的数据丢失(c4267 )但不logging任何错误。 然后,当我启动我的应用程序,它告诉我无法find模块socket.io仍然可以从这里得到什么? 哦,还有当我做npmconfiguration得到根它告诉我“未定义”它可以有什么关系吗? 我应该在全球还是在本地安装模块?

Socket.io:如何处理closures连接?

我试图了解哪些是我的应用程序的“物理”限制。 在客户端: var socket = io.connect("http://127.0.0.1:6701"); socket.on('connect', function() { socket.disconnect(); }); socket.on('disconnect', function() { socket.socket.reconnect(); }); 在服务器端: var io = require('socket.io').listen(6701); io.sockets.on('connection', function(socket) { socket.on('disconnect', function(reason) { var o = Object.keys(socket.manager.open).length , c = Object.keys(socket.manager.closed).length , cA = Object.keys(socket.manager.closedA).length , h = Object.keys(socket.manager.handshaken).length console.log("open: " + o) console.log("closed: " + c) console.log("handshaken: " + h) […]

在Node.js服务器和浏览器之间共享二进制缓冲区

有一个如何在node.js和包含二进制数据的浏览器之间共享缓冲区的问题。 我对使用Socket.io作为传输层感到非常满意,但问题是没有为浏览器移植Buffer类 。 不是我能find的东西 我也遇到了binary.js ,我想知道是否有一个很好的方法来将它们的socket.io作为传输层,将Binary.js作为数据介质。 我也看到了这个问题 ,这是一个有关主题的问题 ,但并没有真正解决问题。 我知道socket.io添加二进制支持,但我还没有find任何有关该主题的文档。 更新: 看来binary.js不会是解决scheme。 我想要的基本要求是与浏览器共享Buffer在节点中具有的相同function。 我的需求包括两件事情: 在服务器和浏览器中以相同的方式处理缓冲区。 支持二进制数据。 我可能会使用arrays缓冲区。 编辑:由于node.js运行在V8,你可以使用ArrayBuffer。 似乎问题解决了。 然而,据我所知,节点的人们决定创build一个缓冲模块并且在他们创build的C绑定(从Ryan Dahl给出的讨论)中pipe理它是一个好主意。 我认为这与缓冲如何在networking上完成有关。 这意味着ArrayBuffer仍然不是服务器和浏览器之间共享的好数据介质。

Socket.io连接恢复到轮询,从不触发'连接'处理程序

我正在尝试将socket.io添加到我现有的node.js应用程序上。 我已经在服务器端添加了socket.io库,如下所示(直接跟在http://socket.io/get-started/chat/ )之后: var express = require('express') , http = require('http') , path = require('path') , fs = require('fs'); var app = express(); var http = http.Server(app); var io = require('socket.io')(http); // Express settings […] // Express routes […] // Socket.io Communication io.on('connection', function(socket) { console.log('a user connected'); }); // Start server app.listen(config.port, function () […]

使用Socket.io模块与XMPP的Node.js – 优点和缺点

我有一个Node.js与Socket.io聊天应用程序和一个XMPP Openfire聊天系统。 我期待用Node.js和Socket.io取代XMPP。 然而,有人说,Node.js与Socket.io会有问题,如果服务器崩溃,并返回在线将有一个瓶颈综合症或者可能无法重新连接10,000个在线用户。 真的吗? 另一个问题。 在什么情况下,XMPP比Socket.io更适合,反之亦然?

dynamic命名空间Socket.IO

我如何在socket.io中使用dynamic命名空间。 我正在寻找(贫穷的) 文档 ,它说,命名空间必须像这样使用: io.of('/news') io.of('/akfda') 要使用命名空间,请执行io.of("/namespace") 。 我需要注册服务器中的每一个命名空间吗? 也许我想要一个dynamic内容的命名空间。 我怎么能做这样的事情: io.of('/:somethign/:id')

格式化消息从python客户端发送到socket.io node.js服务器

我试图通过发送一个自定义的事件到服务器,使用Socket.io 0.7来获取Python客户端与Node.js服务器交谈。 基于我在GitHub上find的Socket.io引用,以及下面的WebSocket Python库 。 这是我的代码到目前为止: 节点服务器 io.sockets.on('connection', function (socket) { socket.on('newimg', function(data) { console.log(data); }); }); Python客户端 def handshake(host, port): u = urlopen("http://%s:%d/socket.io/1/" % (host, port)) if u.getcode() == 200: response = u.readline() (sid, hbtimeout, ctimeout, supported) = response.split(":") supportedlist = supported.split(",") if "websocket" in supportedlist: return (sid, hbtimeout, ctimeout) else: raise TransportException() else: […]

Nodejs&Socket.io可以支持多less用户?

我有一个实现了broadcast.emit的网站。 向该网站的所有用户发送消息。 这只是socket.io的最简单的实现,但我目前有一个问题。 当我打了大约100个并发用户。 nodejs服务器开始滞后,直到它挂起,我不能再访问我的整个网站。 当我们检查服务器。 nodejs占用CPU的100%。 这是正常的吗? 我想知道有多less用户可以socket.io支持? 而当这件事情发生有一种方式来重新启动nodejs服务器编程?

node.js socket.io如何发送到特定的客户端?

我想“发射”一个消息到一个特定的客户端,这个客户端是根据另一个客户端接收到的另一个消息来select的,我该怎么做? 我想把每个客户join自己的“房间”然后播放。 有没有更好的办法?

Socket.io自定义客户端ID

我正在使用socket.io创build一个聊天应用程序,我想使用自定义的客户端ID,而不是默认的( 1120516437992682114 )。 连接时是否有任何方式发送自定义标识符,或只是使用某些东西来跟踪每个ID的自定义名称? 谢谢!