Articles of socket.io

Socket.io:如何处理/pipe理多个客户端的请求和响应?

我非常渴望将Socket.io集成到我的node.js项目中,但是我对如何正确使用socket.io有一些疑惑。 我一直在浏览文档和教程,但我一直无法理解socket.io如何工作的一些概念。 我想到的情况如下: 有多个客户端C1,C2,…,Cn 客户端向服务器R1,…,Rn发送请求 服务器接收请求,进行数据处理 数据处理完成后,服务器向客户端Rs1,…,Rs2发出响应 我在这种情况下的困惑是,当服务器完成数据处理时,它会按照以下方式发出响应: // server listens for request from client socket.on('request_from_client', function(data){ // user data and request_type is stored in the data variable var user = data.user.id var action = data.action // server does data processing do_some_action(…, function(rData){ // when the processing is completed, the response data is emitted as […]

如何将用户名从php会话存储到nodejs中的socket.io库和套接字连接断开页面refresh.Why?

我正在为我的web作业portal.I用于保存用户的名称从php会话到nodejs套接字io库的聊天应用程序..我很困惑..它可以存储10k用户在套接字object.if是那么如何维护那个用户列表? 另一个问题是,当用户从一个页面导航到另一个.socket断开连接,并再次连接..它影响我的应用程序性能或nodejs服务器执行? 请指导我通过教程或博客..我还没有find相关的文档,但有关套接字连接pipe理..预先感谢!

某些networking中的Socket.io错误

我在使用某些networking中的socket.io时遇到问题。 我用来testing的演示页面和节点服务器最初是在这里和这里find的。 这是一个由socket.io提供的简单的聊天客户端。 当用户从办公室或大学等特定封闭networking访问我的服务器上的演示页面时,用户会反复连接和断开连接,直至最终断开连接。 在这期间Node.js的输出是: 3 May 07:50:41 – Initializing client with transport "jsonp-polling" 3 May 07:50:41 – Client 16640139906667173 connected 3 May 07:50:41 – Initializing client with transport "jsonp-polling" 3 May 07:50:41 – Client 6106549079995602 connected 3 May 07:50:41 – Initializing client with transport "jsonp-polling" 3 May 07:50:41 – Client 8987158865202218 connected 3 May […]

Socket.io 0.7.9连接问题

我正在尝试升级到socket.io 0.7.9,并遇到问题。 我已经使用了socket.io主页的基本示例。 我的服务器是: var http = require('http'), url = require('url'), https = require('https'), fs = require('fs'), crypto = require('crypto'), io = require('../'), sys = require(process.binding('natives').util ? 'util' : 'sys'), server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(); }); server.listen(80,"[MYIP]"); var io = io.listen(server), buffer=[]; io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my […]

什么是在模块之间传递Socket.IO套接字的正确方法?

目前我有一个getter / setter套接字模块,如下所示 var socket; module.exports.getSocket = getSocket; module.exports.setSocket = setSocket; function getSocket() { return socket; } function setSocket(sock) { if (undefined == socket) socket = sock; } 在app.js中我设置如下 var sio = require('./lib/socket'); var io = require('socket.io').listen(app); io.sockets.on('connection', function (socket) { sio.setSocket(socket); }); 在我的模块中,我使用如下 sio = require('./lib/socket'); socket.getSocket().broadcast.emit(…); 有没有更好的方法来做到这一点似乎有点人为的做法呢? 编辑:我想要一个通用的解决scheme,发射一个消息,这是不是由客户端套接字启动的问题。 例如,假设我从外部来源检索股票价格,并希望在价格更新时触发事件。 由于它不是客户端启动的,我怎样才能访问套接字? 或者,也可以让我们说,我希望发出一个套接字消息响应一个POST请求。 我再次不知道如何访问套接字。

将socket.io切换到端口80,导致传输切换到xhr轮询

我有一个socket.io服务器端口3000运行完美。 所有的socket.emit和其他操作都通过websocket连接工作。 但是,一旦我试图在端口80上运行服务器,更改 app.listen(3000) to app.listen(80) 并做了所有必要的客户端更改,socket.io停止使用websocket并切换到xhr轮询 warn – websocket connection invalid info – transport end debug – set close timeout for client 1830609591747620770 debug – cleared close timeout for client 1830609591747620770 debug – cleared heartbeat interval for client 1830609591747620770 debug – setting request GET /socket.io/1/websocket/1830609591747620770 debug – set heartbeat interval for client 1830609591747620770 warn […]

带有websocket接口的数据库?

CouchDB有一个http接口,可以从服务器和客户端访问。 有没有像这样的websocket接口存在? 在此先感谢您的任何信息!

与本地客户端的Socket.io。 Origin null和Access-Control-Allow-Origin

我试图用本地客户端testing一个简单的socket.io示例。 这是我的代码: 服务器: var sio = require('socket.io'); var io = sio.listen(8077, {log: false}); io.sockets.on('connection', function (socket) { console.log('connection detected'); socket.on('hello', function(data){ console.log('hello received: ' + data); }); }); 客户: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <script src="socket.io-client/dist/socket.io.js" type="text/javascript"></script> </head> <body> <script type="text/javascript"> var socket = io.connect('http://localhost:8077'); if(socket != undefined){ socket.emit('hello', 'this is a test'); } </script> […]

websocket服务器,存储数据

可以说,我做了一个websocket服务器聊天(node.js + socket.io)。 我将如何存储聊天消息,以便当“新”用户join聊天时,他将看到旧的聊天消息,而不仅仅是在聊天中他已经发送的聊天消息。 数据应该存储在服务器的variables中吗? 就像是: var io = require('socket.io').listen(80); var saveData = { }; io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 对于一个更复杂的应用程序,比如游戏,它会是一个可行的灵魂吗? 谢谢

Node.js – Socket.io – Express 3

我是Node.js和Express的一个小菜鸟:(我有一个访问其他模块中的socket.io对象的问题。我创build了一个全局variables来保存一个套接字对象,但是一旦用户closures连接技术上我猜连接仍然存在,但是我由于资源的原因删除了它。 每次build立连接时都会注意到,我们将该套接字分配给所有其他模块可访问的全局variables。 // App.js var io = require('socket.io').listen(server); var sessionsConnections = {}; io.sockets.on('connection', function (socket) { global.socket = socket; sessionsConnections[socket.id] = socket; ….. } socket.on("disconnect", function() { delete sessionsConnections[socket.id]; }); // Match.js global.socket.emit('lobby:createMatch', data); 如果最后分配给全局的连接closuresMatch.js将被拧紧。 在这一点上,Match.js是唯一需要socket.io引用的模块。 Match.js有一堆用于处理事件的输出,发出更改并呈现视图。 有什么build议如何处理? 是否有可能实例化一个初始的套接字连接,以生活在App.js为全球参考的目的?