node.js - 在node.js中没有socket.io的情况下将消息发送到特定套接字

标签 node.js

我想通过套接字向特定客户端发送消息,但似乎无法弄清楚如果没有 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/

相关文章:

node.js - 在 VS Code 中调试 Typescript Apollo Server (graphQL) 时未绑定(bind)断点

node.js - 如何在zombie.js中使用browser.wait()?

node.js - 如何在 Node.js 应用程序中包含 npm 库

javascript - 对集群和子进程如何工作的困惑

node.js - 性能/延迟差异 - Node.js 中的动态路由与静态路由

json - 无法升级到 Angular4

node.js - Fluxible 中的“脱水”和“再水合”代表什么?

node.js - 由于 mongodb 批量插入非常大,JavaScript 堆内存不足

node.js - 使用nodejs将数据从Rfid rc522发送到azure iot hub

javascript - 使用node_redis客户端正确执行Lua脚本