草庐IT

WSA_IO_PENDING

全部标签

node.js - 列出所有连接到 Socket.io 版本 > 1 房间的客户端

在io.sockets.clients()方法从Socket.io的更高版本中被贬值之后,经过我的研究,在socket.io官方网站上找不到任何文档。此外,它给出了clients()方法的类型错误,如下所示:TypeError:undefinedisnotafunction有人知道如何使用更高版本的Socket.io列出房间中所有连接的客户端吗? 最佳答案 要获取连接到房间的客户端的套接字ID,请使用以下代码:varnamespace='/';varroomName='my_room_name';for(varsocketIdini

javascript - 如何使用 Socket.io 在一条消息中发送两个变量?

我有一个客户端ID和用户名,我希望它们都通过套接字发送。client.userid=userid;client.username=username;client.emit('onconnected',{id:client.userid,name:client.username});我试过这个,但它似乎不起作用 最佳答案 你可以试试这个io.sockets.on('connection',function(socket){socket.on('event_name',function(data){//youcantryoneofthe

javascript - socket.io 可以处理的最大房间数是多少?

我正在使用socket.io构建一个应用程序我正在使用socket.io的房间功能,用户可以订阅5个“主题”。在该主题中广播的每条消息都有一个消息类型,其中有100个。用户只会收到他们允许接收的类型的消息,可能在30到70之间。我的问题:为每个主题+消息类型组合创建一个房间是否可行,即5x100个房间?socket.io会像这样表现良好,还是有更好的方法来解决这个问题?向每个单独的套接字发送单独的消息而不是使用房间会更好吗?感谢您的帮助。 最佳答案 socket.io房间是一种轻量级的数据结构。它们只是与该房间相关联的一系列连接。您

authentication - 建立套接字后的socket.io身份验证

我正在开发一款小型多人游戏。我想介绍身份验证。我正在使用Node.js和Socket.io。当用户到达主页时——无论他们是否登录,我都希望他们加入游戏——但他们将无法在其中做任何事情(只能观看)。然后我该如何在已经打开的套接字上对用户进行身份验证?如果他们离开网站然后回来,我还能保持身份验证吗?可以通过网络套接字传递cookie吗?编辑进一步我的问题。我的一个可能想法是提供websocket连接,然后当他们尝试登录时,它将用户名和密码作为消息传递给websocket。client.on('onLogin',loginfunction);然后我可以获取用户名和密码,检查数据库,然后获取套

javascript - 无法从带有 Socket.IO 的 cookie 中获取 Express session ID

我在Node中有一个典型的Web应用程序,它使用Express框架和session中间件。我还将Socket.io用于我的应用程序的某些动态部分(目前,这是一种聊天机制,但这是切线的)。我已经能够成功地自行设置session和socket.io,但想将它们结合起来(例如:将套接字聊天消息与用户帐户相关联而无需访问数据库)。应该注意(我可以看到这是一个可能的问题点),我在不同的端口上运行两台快速服务器:一台用于常规HTTP流量,另一台用于HTTPS流量。但是,我让两台服务器都进行了相同的配置并共享相同的session存储。session确实在http和https页面之间持续存在。sess

javascript - Socket.io 错误处理

我遇到了Socket.IO的问题。我正在尝试在套接字错误后重新连接套接字,但它不会重新连接。代码如下:socket=io.connect(host,options);socket.on('connect',this.onConnect);socket.on('error',function(){//hereichangeoptionssocket=io.connect(host,options);});为什么它不创建新连接?(主机和端口保持不变,它适用于第一次连接)。 最佳答案 尝试将选项{'forcenewconnection':

node.js - 任何人都可以向我解释 socket.io/nodejs 中的 "volatile"消息吗?

在新的socket.iov0.7中,有一个新功能“volatile消息”。在“如何使用”中,他们这样写:(在http://socket.io/#how-to-use)Sendingvolatilemessages.Sometimescertainmessagescanbedropped.Let'ssayyouhaveanappthatshowsrealtime>tweetsforthekeywordbieber.Ifacertainclientisnotreadytoreceivemessages(becauseofnetworkslownessorother>issues,orbec

node.js - 如何使用 ASP.Net、IISNode、Node.JS 和 SQL Server 实现基于事件的推送通知的 Socket.IO?

对于通知项目,希望将事件通知推送出去。这些是登录、个人资料更改等内容,并将显示给适当的客户。我想讨论一些关于将其组合在一起的想法,并就最佳方法获得一些建议。我注意到here可以使用_changes流检测对CouchDB所做的更改,由Node获取,然后启动一个进程。我想实现这样的东西(我正在使用SQLServer,但这个级别的入口点可能不是最好的解决方案)。我没有遵循CouchDB示例(检测基于数据库的事件,我认为这只会使事情复杂化,因为我们对客户端事件感兴趣),我认为当事件发生时,例如用户登录,然后带有一些事件详细信息(RESTful请求?)的消息被发送到Node服务器。然后处理此消息

node.js - 通过 Socket.io 使用 Redis 作为 PubSub

我正在创建一个聊天应用程序,使用户能够进行私有(private)和群聊。计划为此应用使用以下技术:-NodeJs+Socket.io+Redis+CouchDB(存储消息历史)+AngularJS根据我最初的研究,使用Redis作为PubSub服务比使用Socket.io作为pub-sub更好。原因是如果不同的用户连接到不同的服务器实例,那么在这种情况下使用套接字会产生问题用户1发送的消息不会传递给用户2(用户1连接到服务器1,用户2连接到服务器2)。但如果我们使用Redis,那么根据我的理解,我们必须创建新channel来启用私有(private)聊天。它们是Redis中10kcha

node.js - 无法获取 socket.io.js

我实际上在做一个小项目,我应该用node.js、mongoDB、socket.io和canvas重新创建一个绘图多人游戏。抽屉工作得很好,服务器似乎也工作得很好。我的注册/登录/session和数据库启动并正常工作,唯一的问题是socket.io。当用户加入游戏室时,他可以看到抽屉和工具,但没有连接。为什么?浏览器找不到socket.io.js。我做了什么:我验证它是否已安装,它是使用npminstallsocket.io安装的。我在打开服务器时检查了服务器是否正在启动它:在我的控制台中出现“socket.iostarted”。我检查了我的HTML代码,这里是:根据数十亿的教程/开发站