Tag: websocket

StackExchange NetGain vs Node.js WS websocket服务器的性能

我主要是一个C#/ .NET开发人员,他需要编写一个相对简单但高性能和稳定的websocket服务器。 目前,它看起来像微软的websocket相关工作的唯一官方平台是SignalR。 但是,为了我的需要,它增加了太多的开销。 另一个看起来很有吸引力的选项是StackExchange的NetGain库,但是除了github页面外,似乎没有太多的信息。 在stackoverflow上甚至没有与该库有关的问题/答案。 我确实在stackexchange上find了一个twitter的post,显示NetGain服务于500K并发会话,但是这些分布在几台机器上。 相比之下,Node.js上的WS模块可以在单个服务器上处理550K。 Node.js上的WS模块比NetGain更有效吗? 对于简单的基于NetGain的websocket服务器,我可以在单个基于四核的机器上使用多less个并发连接? 我真的很喜欢使用NetGain,并保持与C#,因为我还在学习Node.js,但是,如果有一个很大的性能差异比我宁愿去与节点。

NodeJS将一个ws对象传递给一个subprocess

我试图将ws对象传递给subprocess。 在“send”函数下的subprocess( https://nodejs.org/api/child_process.html )下的节点文档中,它表示第二个参数可以是子对象可以共享的TCP对象。 当我尝试传递一个ws对象时,它说:“抛出新的TypeError('这个句柄types不能被发送');”。 我想这是因为它是一个WS对象,而不是一个TCP对象,但我想知道是否有无论如何实现与WS对象,而不是一个TCP对象相同的效果…? 由于ws只是符合websocket标准的tcp对象的一个​​包装。

在Node.js中使用WebSockets最简单的方法

我想在Node.js Web应用程序中使用WebSockets,我正在寻找最简单的方法来做到这一点。 我看到很多github仓库似乎提供了一些易用性。 但是,我只是想看看是否有一个突出的支持最多,或实施最广泛。 我是倾向于Socket.IO,但我不完全确定。 有什么build议? 谢谢!

将消息发送到特定的客户端组中

通过套接字io向一组用户发送消息的最佳方式是什么,例如只有特定聊天室中的用户而不是所有用户? 我知道只发送数据到select用户使用Socket.io节点,但socketio版本0.7最近被释放,似乎有可能是一个更优雅的方式与新的api使用get / set或命名空间?

Node.js WebSocket服务器没有收到来自Chrome的正确数据

我一定会错过一些非常明显的东西,但是我无法正确地工作。 握手过程是正确的,但只要我发送一个数据,我就不会在服务器上得到正确的数据。 服务器: stream.on("data", function(data) { if(!handshake) return doHandshake(); // no problems with handshake console.log(data); }); 客户: ws = new WebSocket("ws://localhost:12345"); ws.onopen = function() { ws.send(String.fromCharCode(parseInt("89", 16))); } 我在node.js控制台中看到: <Buffer 81 82 ed 68 ae 67 2f e1> 所以键是ed 68 ae 67 ,编码数据是2f e1 。 使用异或解码解码的数据似乎是c2 89 。 一个c2因为某个未知的原因而被预先考虑了 – 这个89是正确的。 奇怪的事情也发生在其他人物身上: ws.send(String.fromCharCode(parseInt("ab", 16))); 我得到: […]

WebSocket没有连接到socket.io

我用socket.io Node.js来实现我的网页之一的websockets。 server.js(Node.js运行的)有这样的代码: var http = require("http").createServer(), io = require("socket.io").listen(http); http.listen(8080); io.sockets.on("connection", function(socket) { socket.emit("message", {hello:"world"}); }); 这是我试图连接的代码: var socket = new WebSocket("ws://92.60.122.235:8080/"); socket.onopen = function() { alert("Socket has been opened!"); } 当我加载页面,没有任何反应。 我使用的是Chrome,而且我知道支持websockets。 在错误控制台中没有错误,如果我观察到来自命令行的socket.io服务请求,我没有看到任何用户连接。 据我所知这应该工作,谁能解释什么可能会出错?

坚持套接字刷新和页面更改

我有我的NodeJS和Socket.IO服务器运行完美,但我注意到,每次刷新浏览器页面或导航到不同的页面时,套接字断开连接和重新连接。 我怎样才能让页面之间的套接字持久? 谢谢,我想到了这个,但是想避免它,因为这对我所做的系统来说是一个相当大的改变,并且会是一个相当的工作。 套接字连接/断开的唯一影响是“用户login”计数器。 但我想我可以在Node服务器上使用setTimeout来解决这个问题,所以如果套接字在2秒内断开连接并重新连接,计数器将不会改变。 就这个柜台而言,这是最好的解决方法吗?

我怎样才能通过websockets同步两个javascript定时器

我有一个网站与一个JS视觉节拍器(如指挥),可以通过websocket在多台机器上触发。 我怎样才能使节拍器的开始尽可能地同步? 谢谢。

如何为客户端设置Meteor WebSocket端口?

如何设置WebSocket将监听的端口? 我试图在OpenShift上部署Meteor,但是他们有一个nodejs-proxy服务器,它监听端口8000而不是80端口,并redirect到我的Meteor守护进程。 它正在工作,因为手动创build的WebSocket对象工作正常。 我已经设置ROOT_URL,但没有成功。 它出现在浏览器中,如下所示: process.env.ROOT_URL = 'http://' + process.env.OPENSHIFT_APP_DNS + ':8000' 我正在使用这个快速入门: https : //github.com/openshift-quickstart/openshift-meteorjs-quickstart 。 请参阅文件meteorshim.js以供参考。 一切正常,包括长期投票。

将hexstring转换为BYTE数组JS

我一直在这一点,我是与JS编程新。 我正在使用JS,HTML5,节点和socket.io进行游戏。 我现在正在协议,我发送hex的服务器string。 一个string的例子是:00010203040506070809 我很难将其转换为:0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 我打算做的是采取这些自定义数据包,并根据数据包在我的服务器上有一个开关。 举个例子: BYTE HEADER | + Packet 0x00 | 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 然后我调用:parsepacket(header,data,len); function parsepacket(header, data, len){ switch(header) { case '0x00': // not hexed console.log('The client wants to connect'); // Do some stuff to connect […]