Tag: socket.io

Socket.io:从一台服务器连接到另一台服务器

我试图让一个nodejs(socket.io)服务器与另一个进行通信。 因此,客户端向“中心”服务器发送事件,并且该服务器向第二服务器发出事件以处理该操作。 我试图做到: var io_client = require( 'socket.io-client' ); 接着, io_client.connect( "second_server_host" ); 它似乎工作的连接,但你不能做任何事情: debug – set close timeout for client 15988842591410188424 info – socket error Error: write ECONNABORTED at errnoException (net.js:642:11) at Socket._write (net.js:459:18) at Socket.write (net.js:446:15) 我想我做错了,错过了一些明显的东西。 有什么build议么?

Socket.IO房间function

我有两个单独的文件,一个是服务器端JS。 另一个是dynamic生成的客户端PHP。 这两个文件能够通过Socket.IO成功地相互通信。 我知道我可以通过使用.of()来限制名称空间,但不能使用它 处理dynamic创build的聊天室。 所以我决定使用两者 .of('/chat') 和房间的function .join('room name') 我可以find服务器端的例子,并找不到客户端的例子。 以下是Socket.IO github中唯一给出的服务器端代码片段 var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.join('justin bieber fans'); socket.broadcast.to('justin bieber fans').emit('new fan'); io.sockets.in('rammstein fans').emit('new non-fan'); }); 1)我无法理解下面的部分。 socket.broadcast.to('justin bieber fans').emit('new fan'); io.sockets.in('rammstein fans').emit('new non-fan'); 这两者有什么区别? 2)为什么不使用 socket.to('room name').emit('event') 代替 io.sockets.in('room name').emit('new non-fan'); 3)最后,我find了一些使用的文档 .send() 代替 .emit() 有点.send()不适合我,我想知道这两者之间的区别。 谢谢,我很抱歉有关Socket.IO的多个问题。

socket.io/node.js检测服务器是否closures

有什么我可以做在客户端检测到socket.io websocket不可用? 有些东西是: 服务器按照惯例启动 客户连接 消息在服务器和客户端之间来回发送 服务器closures (不再可用) 警告连接的客户端服务器不可用 我试图在客户端添加'错误'和'connect_failed'选项,但没有任何运气,那些根本没有触发。 任何人的想法,我怎么能做到这一点?

在客户端定义传输types

我需要使用IE的jsonp-polling和Firefox的xhr-polling,所以我试图在客户端定义传输types,如下所示: if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/xx or Firefox xx (ignoring remaining digits); var socket = io.connect(VG.NODE_SERVER_URL,{ transports:['xhr-polling'] }); } else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ var socket = io.connect(VG.NODE_SERVER_URL,{ transports:['jsonp-polling'] }); } else { var socket = io.connect(VG.NODE_SERVER_URL); } 我在Firefox上testing了它,并在socket.io-client lib上添加了日志logging。 在 https://github.com/LearnBoost/socket.io-client/blob/master/dist/socket.io.js#L1509 option.transports是["xhr-polling", "flashsocket", "htmlfile", "xhr-polling", "jsonp-polling"] ,这是正确的。 但是,在 https://github.com/LearnBoost/socket.io-client/blob/master/dist/socket.io.js#L1679 我不知道为什么传输会变成["htmlfile", "jsonp- polling", "xhr-polling"] ,它与我在服务器端定义的序列相同。 为什么不使用以前的选项?

Node.js中的multithreading?

我在node.js中为Windows Azure项目实现了socket.io。 我必须定期向所有连接的客户端发送数据。 我是node.js的新手,但我想multithreading是不可能的。 socket.io的目的是为了支持实时应用程序,所以有什么方法可以将数据连续不断地发送给所有连接的客户端,并同时处理客户端同时发送给socket.io服务器的任何数据? 编辑: 这大致是我的socket.io实现 var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('first', "connected"); socket.on('clientData', function (data) { //processing the data }); }); function requestQueue() { // some processing io.sockets.emit('broadcast', recordsQueue); // should go to sleep for a time period } 本质上,我希望requestQueue方法像线程一样持续运行,它将以特定的时间间隔向连接的客户端发送数据。 而且,如果客户端发送任何数据到“clientData”事件,那么我应该能够接收数据并对其进行处理。 任何想法,我怎么能做到这一点? 谢谢 我的解决scheme var io = require('socket.io').listen(80); io.sockets.on('connection', function […]

讨论:通过node.js聊天服务器:HTTP还是TCP?

我正在考虑使用node.js / socket.io做一个聊天服务器。 我应该使它成为一个TCP服务器或HTTP服务器? 我想tcp服务器会更有效率,但你可以发送其他东西,如文件附件等? 如果tcp更高效,还有多less呢? 另外,只是想知道一个node.js服务器可以处理多less个并发连接? 是更多的工作做TCP或HTTP?

如何检测socket.io上的断开连接?

我在我的项目中使用socket.io。 我打开了重新连接function。 我想如果用户断开与服务器显示警报(您的互联网连接丢失,尝试重新连接)。 如果用户再次重新连接,我想显示一个更多的警报(不要担心,你连接)。 我该怎么做?

与mongoDB的NodeJS连接错误

我有一个问题,连接我的socketIO应用程序(使用nodeJS)与我的mongoDB。 我尝试在远程服务器上连接,但它会引发错误 这是我的代码(在mongoDB中没有设置用户/密码): var url = "mongodb://192.168.1.5:27017/DB" MongoClient.connect(url, function(err, db) { console.log("test") if (!err) { console.log("test"); } else { console.dir(err) throw err } // db.close(); }); 在这里,当我启动服务器,我试图启动导航器中的应用程序:服务器端口80听: { [MongoError: connect ECONNREFUSED] name: 'MongoError', message: 'connect ECONNREFUSED' } /root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:228 process.nextTick(function() { throw err; }) ^ Error at Error.MongoError (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:13:17) at Server.destroy (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:629:47) at Server.close (/root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:344:17) at […]

在socket.io中获取消息发送者的客户端ID?

在服务器端,我得到了 socket.on('chat', function (data) { io.sockets.socket(data.clientid).emit('chat', { msg: data.msg, senderid : senderid }); }); 我怎么能得到senderid没有发送者不得不通过邮件他们clientid?

OpenShift node.js错误:听EACCES

我一直在使用OpenShift与node.js和socket.io。 我的代码是: server.listen(process.end.OPENSHIFT_NODEJS_PORT || 3000); 我的代码说,它返回端口8080.但是,我得到这个错误: DEBUG: Starting child process with 'node server.is' Info: socket.io started warn:error raised: Error: listen EACCES 我怎样才能解决这个问题? 没有其他解决scheme,我可以find作品