草庐IT

WSA_IO_PENDING

全部标签

javascript - Node.js + Socket.io 超出最大调用堆栈大小

对于我的Node应用程序,我有一个在Debian上运行的服务器(app.js),它使用socket.io为我的客户端(index.html)提供html和websocket数据。我正在尝试制作一款基于回合制的HTML5多人游戏。在使用socket.emit()/io.emit()和socket.on()执行多次成功的数据传输后,我的服务器在socket.emit()调用时崩溃并出现错误"events.js:72throw者;//未处理的“错误”事件RangeError:超出最大调用堆栈大小”。我有很多socket.on()事件监听器,每个监听器都处理游戏中的不同功能(例如roll_di

Django、socket.io、node.js - 管理私有(private)消息和群组对话

我正在为FacebookMessenger或WhatsApp等服务编写后端。我开始关注这个精彩tutorial.我使用Python(Django)编写的API来执行此操作。除了这个API,我还有一个Redis进程和一个正在运行的node.js服务器(仅限本地主机)。node.js服务器使用socket.io库通过websockets进行实时通信可以从任何客户端向DjangoAPI发送包含消息的HTTP请求,后者又将消息发布到特定channel上的Redis。node.js服务器已订阅Redischannel,并在发布此类消息时收到通知。Node会跟踪哪些套接字当前与一组套接字id连接,

mysql - 用于检查数据库更新的 Socket.io

我有一个node.js服务器,它连接到一个mysql数据库并使用socket.io打开一个新套接字。该服务器的作用基本上是在数据库表中有该用户的新消息时通知连接到它的任何客户端(用户)。下面的代码仅在客户端明确发出“check_messages”请求时才有效。我该如何更改它,以便客户端是在该用户的mysql表中插入新消息时通知的客户端,而不是客户端必须显式发出“check_messages”请求?varapp=require('http').createServer().listen(8124);varmysql=require('mysql');varconnection=mysql

javascript - 如何使用集群处理 Socket.IO 房间?

我有一个与集群一起工作的服务器,并与socke.IO一起工作:集群正在实例化进程,每个进程都有特定数量的房间。服务器流程1一室房间2N号房间流程2一室房间2N号房间我将一些用户连接到房间(只有一个进程)的方式是使用路由,用户在该路由中访问页面,当他尝试与Socket.io建立连接时,我会检查URL并使用它信息我将他插入一个房间。我的问题是用集群实现此服务器我无法将用户插入特定房间,因为有些房间只存在于特定进程中,并且粘性session将他置于另一个进程中。如何将用户放在另一个进程中的房间中?另外用户只能看到他在服务器中的进程的路线,我想显示页面中的每个房间。我已经阅读了Redis-Ad

node.js - 如何使用 Socket.io 设置使 Apache 和 Node.js 工作?

从Node.js/Socket.io开始。最终,我想从Apache提供页面,同时使用Node.js服务器推送和扩充一些内容。这只是一个小测试,看看它是如何工作的。这是我的设置:Apache在端口8080上运行Node.js在端口8000上运行我将index.html页面(见下文)复制到它们各自的根目录。当我打开http://localhost:8000时,一切正常,我可以看到完整的消息交换。当我打开http://localhost:8080时,一切似乎都正常工作(基于请求和响应header,以及与1相比的Node.js日志),但我可以看到Node.js或Firebug日志中没有消息交换

node.js - socket.io 和 node.js 向特定客户端发送消息

向所有客户端发送消息效果很好,但我想向特定用户名发送消息。我的server.js文件看起来像。它的作用是当http://localhost:8080运行时,客户端代码将用户添加到对象用户名以及套接字对象中。并立即将单个消息返回给每个连接的客户端。//vario=require('socket.io').listen(8080);varapp=require('http').createServer(handler),io=require('socket.io').listen(app),fs=require('fs')varusernames={};app.listen(8080);/

node.js - 浏览器无法使用 express 获取 socket.io.js 文件

我对socket.io示例有疑问。我的浏览器无法获取socket.io.js文件(控制台出现404错误)。有效的代码:server.jsvarapp=require('express').createServer(),io=require('socket.io').listen(81);app.listen(80);app.get('/',function(req,res){res.sendfile(__dirname+'/index.html');});io.sockets.on('connection',function(socket){socket.emit('news',{he

node.js - socket.io 与私有(private)房间聊天

我开始研究node和socket.io。我已经创建了一个简单的聊天应用程序,我对它的简单程度感到惊讶。现在,我想更进一步,提供一个可以私下聊天的在线用户列表。解决这个问题的最佳方法是什么?我阅读了0.7的新房间功能。那会是一条路吗?每次2个用户需要私聊时动态创建一个新房间?但是如何通知第二个用户创建了新房间,以便他可以在那里连接?自己处理以上所有逻辑会更好吗?将房间和用户存储在服务器端并每次循环它们并将消息发送到适当的那些?谢谢 最佳答案 如果您想要的唯一功能是让两个人能够互相发送消息(而不是让一群人有一个房间),那么逻辑可能是这样

node.js - Node : Scale socket. io/nowjs - 跨不同实例扩展

在开始编写我的应用程序之前,我需要知道当单个node.js实例(express和(socket.io或nowjs))不够用时该怎么办。您现在可能会告诉我,我不应该关心规模,直到时机成熟,但我不想开发应用程序并遇到麻烦,因为您无法轻松地跨多个实例扩展socket.io或nowjs.我最近读到socket.io现在支持使用Redis进行扩展(我也没有经验)。Nowjs建立在socket.io之上——它的工作方式是否相同?在nowjs.org您可以读到“NowJS的分布式版本”正在开发中,并且需要花钱。 最佳答案 如果您需要扩展Node,

node.js - 与 nginx、nodejs 和 socket.io 的 WebSocket 连接失败

我尝试使用nginx设置nodejs。但是当客户端尝试连接时,它会失败...WebSocketconnectionto'ws://www.mydomain.com/socket.io/1/websocket/KUv5G...'failed:ErrorduringWebSockethandshake:'Connection'headervalueisnot'Upgrade':keep-alivesocket.io.js:2371那么如何开启websocket通讯呢?我当前的nginx配置upstreammynodejsapp{server127.0.0.1:3000max_fails=0