我想在两个或多个不同的node.js应用服务器之间启用基于套接字的p2p通信。我正在使用socket.io来处理给定服务器和它所服务的Web应用程序之间的所有此类通信-但我正在寻找的是一种服务器到服务器通信的方式。我最初以为它会像这样简单:vario=require("socket.io");varsocket=io.connect("myremoteendpoint");但是,事实证明服务器端socket.io实现不提供“连接”方法,仅提供监听方法。这是为什么?为什么我不能将Node应用程序服务器视为在其他地方运行的socket.io服务器的客户端?有什么方法可以实现这个功能吗?
我想在两个或多个不同的node.js应用服务器之间启用基于套接字的p2p通信。我正在使用socket.io来处理给定服务器和它所服务的Web应用程序之间的所有此类通信-但我正在寻找的是一种服务器到服务器通信的方式。我最初以为它会像这样简单:vario=require("socket.io");varsocket=io.connect("myremoteendpoint");但是,事实证明服务器端socket.io实现不提供“连接”方法,仅提供监听方法。这是为什么?为什么我不能将Node应用程序服务器视为在其他地方运行的socket.io服务器的客户端?有什么方法可以实现这个功能吗?
在socket.io中,如果你想向特定房间发送消息,通常在服务器端使用特定语法:io.to(room).emit('事件','消息');.但是client(我的意思是在浏览器中运行的与socket.io相关的代码)如何指示消息应该发送到特定房间?只创建这样的东西是否很常见(当然服务器必须对其进行评估):socket.emit('chatmessage',{room:'abc',msg:'hellothere'});或者socket.io客户端库是否也为此目的提供了特定的语法?编辑:澄清一下,我上面的建议似乎有效,我只是不确定是否有更好的解决方案。 最佳答案
在socket.io中,如果你想向特定房间发送消息,通常在服务器端使用特定语法:io.to(room).emit('事件','消息');.但是client(我的意思是在浏览器中运行的与socket.io相关的代码)如何指示消息应该发送到特定房间?只创建这样的东西是否很常见(当然服务器必须对其进行评估):socket.emit('chatmessage',{room:'abc',msg:'hellothere'});或者socket.io客户端库是否也为此目的提供了特定的语法?编辑:澄清一下,我上面的建议似乎有效,我只是不确定是否有更好的解决方案。 最佳答案
如何在socket.io中使用动态命名空间。我正在寻找(可怜的)documentation,并且它说必须像这样使用命名空间:io.of('/news')io.of('/akfda')要使用命名空间,请执行io.of("/namespace").我需要在服务器中注册每个命名空间吗?也许我想要一个动态内容的命名空间。我该怎么做:io.of('/:somethign/:id') 最佳答案 Socket.IO支持“房间”(https://github.com/LearnBoost/socket.io/wiki/Rooms),您可以使用它来代
如何在socket.io中使用动态命名空间。我正在寻找(可怜的)documentation,并且它说必须像这样使用命名空间:io.of('/news')io.of('/akfda')要使用命名空间,请执行io.of("/namespace").我需要在服务器中注册每个命名空间吗?也许我想要一个动态内容的命名空间。我该怎么做:io.of('/:somethign/:id') 最佳答案 Socket.IO支持“房间”(https://github.com/LearnBoost/socket.io/wiki/Rooms),您可以使用它来代
我的Node.js应用程序正在URLhttp://www.example.com/myapp/上运行.我已经配置了一个带有自定义命名空间的Socket.IO服务器(版本1.3.5)。这是一个示例代码片段:varserver=http.createServer(...);vario=socketio(server);io.of('/a/b/c').on('connection',function(socket){socket.emit('update',{msg:'/a/b/c'});});我不知道如何从客户端连接到此服务。我的猜测(这些都不起作用):io.connect('http:/
我的Node.js应用程序正在URLhttp://www.example.com/myapp/上运行.我已经配置了一个带有自定义命名空间的Socket.IO服务器(版本1.3.5)。这是一个示例代码片段:varserver=http.createServer(...);vario=socketio(server);io.of('/a/b/c').on('connection',function(socket){socket.emit('update',{msg:'/a/b/c'});});我不知道如何从客户端连接到此服务。我的猜测(这些都不起作用):io.connect('http:/
我已经使用Socket.IO工作了几天,这既令人兴奋又令人沮丧。当前文档/教程的缺乏使得学习变得非常困难。我终于设法创建了一个基本的聊天系统,但有一个明显的问题。如何保护它?是什么阻止了恶意用户复制(或编辑)我的代码并连接到我的服务器?我可以从我的PHP脚本中获取用户名并将其提交给Socket.IO,这样我就可以将他们识别为那个用户(当然PHP具有安全性),但是是什么阻止了某人只提交未注册的用户名呢?如何确保提交的事件是真实的并且没有被篡改?我的基本socket.io聊天以供引用。服务器:vario=require('socket.io').listen(8080);varconnec
我已经使用Socket.IO工作了几天,这既令人兴奋又令人沮丧。当前文档/教程的缺乏使得学习变得非常困难。我终于设法创建了一个基本的聊天系统,但有一个明显的问题。如何保护它?是什么阻止了恶意用户复制(或编辑)我的代码并连接到我的服务器?我可以从我的PHP脚本中获取用户名并将其提交给Socket.IO,这样我就可以将他们识别为那个用户(当然PHP具有安全性),但是是什么阻止了某人只提交未注册的用户名呢?如何确保提交的事件是真实的并且没有被篡改?我的基本socket.io聊天以供引用。服务器:vario=require('socket.io').listen(8080);varconnec