我想通过套接字向特定客户端发送消息,但似乎无法弄清楚如果没有 socket.io 怎么办。我不能使用 socket.io 的原因是因为我正在尝试连接到 flash 客户端,并且我已经在 stackoverflow 上的许多线程中读到 socket.io 并不意味着连接到 flash 客户端。我有工作代码,可以将 Node 套接字服务器连接到在 flash(actionscript 3)中创建的套接字客户端,但它会将信息广播给连接到套接字的每个人。我的想法是,如果有某种方法可以将信息发送到特定的套接字 ID,那么我就可以做生意了。我查看了文档,但没有找到有关如何执行此操作的任何信息,但我又在文档中找不到有关特定套接字 ID 的任何文档,但使用“socket.id”将提供 ID,所以我我想知道是否有一些未记录的方法可以做到这一点。
仅供引用,这是一款纸牌游戏,每个连接的玩家都会收到发送给他们的纸牌。游戏逻辑由服务器端负责,我可以正常工作。现在我只需要让每个玩家只获得他们需要的信息。谢谢。
达里尔
最佳答案
我确信您可以将 Adobe® Flash® Socket
与 socket.io 结合使用。当您查看可用的 transports(browsers)您会注意到 socket.io 还支持 Adobe® Flash® Socket
。但老实说我不知道这方面的具体细节,但我认为你可以通过学习了解它们socket.io's specification page .
当查看 socket.io's WIKI 时我还发现已经有一个库可以将 socket.io 与 Adobe® Flash® Socket
一起使用。该库称为 FlashSocket.IO我相信这可以帮助你,虽然我自己不知道任何闪光。
Adobe® Flash® Socket
在最新的 socket.io 分支中被标准禁用,但您可以通过 studying configuring socket.io 轻松启用它们.此页面告诉您如何启用我将在下面总结的所有传输:
io.set('transports', [ // enable all transports (optional if you want flashsocket)
'websocket'
, 'flashsocket'
, 'htmlfile'
, 'xhr-polling'
, 'jsonp-polling'
]);
如果你还没有足够的答案(我想这应该对你有帮助)我想你也可以file an issue at socket.io's issue page ,因为我发现 socket.io 的维护者非常友好,他们会告诉您如何轻松完成此任务。
最后,要使用普通 Node 完成此操作,您必须自己跟踪所有事件的套接字连接( session ),并且只将该消息发送到该特定套接字。这是一项平凡的任务,但我认为有足够多的可用教程可以教你这一点(你也可以看看 socket.io 他们是如何实现这一点的,尽管这是一个相当大的项目/代码库)。
我希望这能回答您的问题。如果没有,我建议您在评论中提问。
关于node.js - 在node.js中没有socket.io的情况下将消息发送到特定套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7366374/