草庐IT

WSA_IO_PENDING

全部标签

javascript - socket.io 自定义事件的确认

我正在寻找一种方法来确认socket.emit调用。socket.emit('message',msg);我看到了一种机制,接收者会发送另一个自定义事件作为确认,但这会在我的聊天应用程序中添加数千个传输。请教一个有效的方法。 最佳答案 emit方法的第三个参数接受一个回调,该回调将传递给服务器,以便您可以使用任何您想要的数据进行确认。这实际上非常方便,并且省去了配对调用响应事件的工作量。我正在用我刚刚测试的一些代码更新我的答案。首先在服务器端:io.sockets.on('connection',function(sock){con

ajax - 如何扩展 socket.io?

假设服务器有10,000个并发连接(通过socket.io)。太多了,如果不能再处理,我需要启动另一台服务器。如何将两个服务器与它们的socket.io同步? 最佳答案 我不会使用Cluster来扩展Socket.IO。Socket.IO0.6设计为单进程服务器,它使用长生命周期连接或轮询连接来实现服务器和客户端之间的实时连接。如果你把集群放在你的socket.io客户端前面,你基本上会在不知道客户端的不同服务器之间分配轮询传输。这将导致连接断开。但是向所有客户端广播也会很痛苦,因为它们都分布在不同的服务器上,而且它们之间没有IPC

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

我想向特定客户端“发送”一条消息,该消息是根据在不同客户端接收到的另一条消息选择的,我该怎么做?我正在考虑将每个客户加入他们自己的“房间”,然后进行广播。有没有更好的办法? 最佳答案 socket.io1.0及以上版本更新io.to(socketid).emit('message','whatever');对于旧版本:您可以将每个客户端作为属性存储在对象中。然后就可以根据消息查找socket了:varbasket={};io.sockets.on('connection',function(socket){socket.on("re

node.js - 覆盖socket.io发射并开启?

在开发过程中,能够看到哪些数据包到达和发送对我有很大帮助。这在服务器端使用记录器是可能的。但是,在客户端,没有记录器。我发现自己到处乱扔console.log。是否可以用console.log(arguments)覆盖socket.emit和socket.on?如果我可以在我的套接字之前覆盖它,那将非常优雅。有人建议我改用Parser。你的2cents是多少?编辑我尝试了加藤的建议并写了以下内容:var_origEmit=socket.emit;socket.emit=function(){console.log("SENT",Array.prototype.slice.call(ar

node.js - Heroku Node.js 应用程序上的 Socket.io 和多​​个 Dyno。 WebSocket 在连接建立之前关闭

我正在构建一个部署到Heroku的应用程序,它使用Websockets。当我只使用1个测功机时,websockets连接工作正常,但是当我扩展到>1时,我收到以下错误POSThttp://****.herokuapp.com/socket.io/?EIO=2&transport=polling&t=1412600135378-1&sid=zQzJJ8oPo5p3yiwIAAAC400(BadRequest)socket.io-1.0.4.js:2WebSocketconnectionto'ws://****.herokuapp.com/socket.io/?EIO=2&transpor

node.js - Socket.IO 和 Firebase 有什么区别?

我看了一个关于Node.js的codeschool教程,他们在教程中使用Socket.IO模仿了一个聊天服务器。我也觉得Firebase做同样的事情。如果有的话,两者有什么区别? 最佳答案 其实是有区别的。Socket.io是一个用于管理套接字的JavaScript库。在网络聊天示例中,您创建套接字:客户端到服务器服务器到客户端也就是说,您控制所有端点,并使用socket.io作为一种工具在您的端点之间进行通信。相比之下,使用firebase您只关注1(客户端到服务器)使用服务与使用自己的基础设施的优缺点是一个不同的主题,并且非常固

javascript - 如何在 socket.io 中配置重新连接?

我用下一个代码创建socket.io连接varsocket=newio.connect('http://localhost:8181',{'reconnect':true,'reconnectiondelay':500,'maxreconnectionattempts':50});但是当我杀死服务器CTRL+C并重新启动它时,重新连接没有发生。但是在客户端引发了断开连接事件。可能是什么原因? 最佳答案 这是一个老问题,但对于像我这样正在寻找如何在socket.io(1.x)中配置重新连接的其他人来说,这是一个正确的语法:varsoc

javascript - Socket.io 错误挂接到 express.js

我正在尝试将socket.io和express.jsHook:varsocket=require('./socket_chat/socket.js');varexpress=require('express'),app=module.exports.app=express();vario=require('socket.io').listen(app);app.use(express.static(__dirname+'/app'));io.sockets.on('connection',socket);在这一行:vario=require('socket.io').listen(ap

node.js - 如何使用 Express/Socket.io 在 Node.js 上使用 HTTPS

我正在尝试使用https运行我的Node服务器。我正在使用express和socket.io。这是我的https代码:varhttpsPort=443;varprivateKey=fs.readFileSync(mykeypath');varcertificate=fs.readFileSync(mycertificatepath');varcredentials={key:privateKey,cert:certificate};varhttps=require('https').Server(credentials,app);vario=require('socket.io')(h

javascript - socket.io - 'connect' 事件不会在客户端触发

我正在尝试开始使用node.js和socket.io。我有一个非常(非常)简单的客户端-服务器测试应用程序,但我无法让它工作。系统设置在一台装有apache服务器的windows机器上。apache在port81上运行,socket.io设置为监听port8001服务器-server.jsvario=require('socket.io').listen(8001);io.sockets.on('connection',function(socket){console.log('\ngotanewconnectionfrom:'+socket.id+'\n');});客户端-index