草庐IT

socket_handle

全部标签

node.js - 保护 Socket.io

我正在使用基于Node.js的https服务器,该服务器使用HTTPBasic进行身份验证(这很好,因为数据是通过SSL加密连接发送的)。现在我想提供一个Socket.io连接,应该是加密和仅适用于经过身份验证的用户。问题是如何做到这一点。我已经发现在连接到套接字时需要在客户端JavaScript代码中指定{secure:true},但是如何在服务器端强制套接字连接只能运行SSL,并且它仅适用于经过身份验证的用户?我猜SSL是最简单的部分,因为Socket.io服务器只绑定(bind)到https服务器,所以它应该只使用SSL运行,并且不应该通过(另外)运行它运行http服务器,对吧?

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);然后我可以获取用户名和密码,检查数据库,然后获取套

node.js - Firebase 的云函数 : 'Error: could not handle the request'

我想拔头发;这要么super简单,我的大脑卡住了,要么没那么简单。我想要什么当用户转到:myapp.firebaseappurl.com/url/SHORTENEDLINK所以不会让我添加缩短的URL我希望输出是:{"url":"https://stackoverflow.com/questions/45420989/sphinx-search-how-to-use-an-empty-before-match-and-after-match"}我尝试过的firebase.json文件:{"hosting":{"public":"public","rewrites":[{"source"

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服务器。然后处理此消息