Articles of websocket

使用回送令牌来validationsocket.io

我正在使用loopback 2.0和socket.io 1.0.6。 我想使用环回authentication方法来authenticationsocket.io。 我发现了在loopback / lib / middleware / token.js中validation用户的方法。 https://github.com/strongloop/loopback/blob/master/lib/middleware/token.js 然后我写如下: var loopback = require('loopback'); var ioapp = module.exports = socketio; function socketio(server) { var io = require('socket.io')(server); // auth io.use(function(socket, next) { loopback.token()(socket.request, null, next); }); // listeners … return io; }; 但实际上我不会工作,并导致这样的错误。 /Users/…/project_root/node_modules/loopback/lib/models/access-token.js:201 id = req.param(params[i]); ^ TypeError: Object #<IncomingMessage> has […]

连接socketcluster服务器

我试图实现这个解决scheme (在Win10 x64上),但是由于某种原因,所有的SocketCluster节点都拒绝相互通信。 Sothis是我的。 组态: 1个StateServer [7777] 1 BrokerServer [8888] 2端口上运行的SocketCluster服务器[8000,8001] 1 LoadBalancer [2000]在两个节点之间划分stream量。 我确保国家和经纪人都在倾听: TCP [::]:7777 [::]:0 LISTENING TCP [::]:8888 [::]:0 LISTENING 从我目前所了解的情况来看, BrokerServer和SocketCluster节点都应该连接到StatusServer (?) 我可以成功将BrokerServer连接到StateServer ,但每当我尝试连接任何SocketCluster服务时,它都会报告“套接字挂起”错误。 StateServer : SC Cluster State Server is listening on port 7777 Sever d08298c6-523f-4c1b-9fcc-efd4e92fab22 at address undefined on port 8888 joined the cluster Client 10612bde-514f-40d3-9340-7179a1901376 at address undefined […]

socket.io – 断开连接事件不会在xhr-polling中触发

在socket.io中,当传输xhr-polling处于活动状态时,断开事件不会触发。 如果我切换到websockets的运输工作正常,但在xhr轮询它不起作用。 /* Basics */ var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(1337, null); io.set('transports', ['xhr-polling']); // routing app.get('/', function (req, res) { res.sendfile("index.html"); app.use(express.static(__dirname)); }); io.sockets.on('connection', function (socket) socket.on('disconnect', function() { console.log('LOL'); }); }); 在下面的代码断开不会触发,但如果我删除行 – io.set('transports', ['xhr-polling']); 它完美的工作,所以为什么它不与xhr-polling一起工作? 但只有websockets? 我怎样才能解决这个问题? 我错过了什么吗? 提前致谢 ;)

在node.js中安装Socket.io包

1)安装的节点v0.10.13 X64 (我在Win 8中) 2)用pipe理员权限打开CMD 3)键入npm install socket.io它下载的东西,但它显示最后一个像一个build立错误的东西 。 npm http GET https://registry.npmjs.org/socket.io npm http 304 https://registry.npmjs.org/socket.io unbuild socket.io@0.9.16 npm http GET https://registry.npmjs.org/socket.io-client/0.9.16 npm http GET https://registry.npmjs.org/policyfile/0.0.4 npm http GET https://registry.npmjs.org/base64id/0.1.0 npm http GET https://registry.npmjs.org/redis/0.7.3 npm http 304 https://registry.npmjs.org/base64id/0.1.0 npm http 304 https://registry.npmjs.org/socket.io-client/0.9.16 npm http 304 https://registry.npmjs.org/policyfile/0.0.4 npm http GET https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz npm http GET https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9. […]

服务器之间的websocket通信

我在Stackoverflow上阅读了很多,但经过一个星期的思考和研究,我正在运行卡住… 所以我真的要问:) 希望我解释正确的问题,如果没有,请说! 问题是simpel。 我需要2个服务器…服务器A – 没有任何东西,然后每15分钟填写一个数据库,服务器B做了从服务器A的数据的东西。 它很容易让服务器B做一个HTTP请求的数据,但我真正想要的是,服务器B从服务器A获得'套接字更新',每当它已经更新数据库数据。 问题是:服务器B不总是在同一个URL上….所以数据库服务器不能简单地做一个get / post请求,因为它不会总是知道它的url。 这就是为什么我希望,服务器B可以启动到数据库服务器的socket.io连接。保持线路对服务器A打开,以便服务器A可以响应其新的数据库数据,通过已build立的套接字连接… 。 所以基本上…是否有可能在2个服务器之间有一个共同的socket.io连接..就像一个客户端之间的服务器呢? 真的感谢!!! 更新:将其清除一点。 我有一个股票数据库..它从交易API获取所有数据,每15分钟。 这台服务器绝不能停止! 它可能,但它的烦人,导致数据将不一致… 我还有另外一个脚本,这个脚本将会一直在开发中。这个脚本对数据库服务器的数据进行了计算。 所以它会有(开发)错误等偶尔..这个脚本不应该停止'数据库股票'脚本…所以我想分开运行他们彼此。 这就是为什么我需要有2个服务器相互连接.. 我的数据库是从一个固定的URL运行..但是我的开发脚本依赖于我在哪里开发.. 也许有一个更好的解决scheme,我想达到什么..?

为什么remoteAddress隐藏?

我用https://github.com/websockets/ws使用Node.js。 我试图将用户remoteAddress存储在一个临时套接字variables中。 我可以通过socket.upgradeReq.connection.remoteAddress访问这个variables 问题是,遥控地址从哪里来? 甚至在lib目录下的任何WS node_plugin文件中都找不到variables'remoteAddress'。 (我使用记事本++search每个文件。) 我find访问这个variables的唯一原因是来自这个主题: 如何使用node.js中的websocket(einaros / ws)lib获取客户端IP地址? 哎呀,即使在显示console.log(self.upgradeReq.connection); 在我的控制台我仍然无法find它! 对象控制台列表的图像: 在世界的哪个地方? 我错过了什么吗?

Socket.io中的通道

我试图通过Node.js服务socket.io( http://socket.io/ )广播一条消息到所有订户的某个子集。 更确切地说,我想使用用户可以订阅的频道,以便同时有效地将消息推送给几百人。 我不确定是否addEvent('channel_name',x)是要走的路。 我没有在文档中find任何东西。 有任何想法吗? 谢谢你

Node.js Websockets Socket.IO

我无法得到客户端事件触发,请参阅代码/说明: 好吧,所以我得到了这个工作(我认为) 客户端代码: <script src="./Socket.IO/socket.io.js"></script> <script> io.setPath('./Socket.IO/'); var socket = new io.Socket('jayz.danstanhope.webfactional.com', { 'port': 80 }); socket.on('connect', function () { alert('connect'); }); socket.on('message', function (msg) { alert('message' + msg); }); socket.on('close', function () { alert('close'); }); socket.on('disconnect', function () { alert('disconnect'); }); socket.connect(); </script> 服务器端代码: var sys = require("sys") , fs = require("fs") , path […]

多人游戏架构

任何人都可以推荐文章,书籍,关于这个教程? 也许是(文章,书籍,教程)关于多人游戏体系结构,networking在HTML5,JavaScript,WebSockets,Node.js?

讨论:使用node.js / socket.io实现聊天室的最佳方式?

我不是在谈论一般的聊天应用程序,而是专门讨论聊天室的实现。 所以在node.js / socket.io中,我想到了两种方法 为每个聊天室创build一个数组,向数组中的所有用户广播消息 将所有消息广播给所有用户,在客户的PC上确定它们是否属于聊天室,如果是,则接受消息。 1中的弱点是,当你扩大规模时,你会用数组对象淹没服务器的内存,而在我的主机上只使用大约80mb。 2中的弱点是,最终广播给每个人都是昂贵的,而客户机器的泛滥也不会使他们感到高兴。 我相信在如何实现聊天室方面有更好的方法,所以这就是为什么我要求你们帮助我。 我在服务器端首先在客户端寻找性能,而且它必须是可伸缩的。