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

时间:2011-09-09 19:11:24

标签: node.js

我想通过套接字向特定客户端发送消息,但似乎无法在没有socket.io的情况下弄清楚如何做到这一点。我无法使用socket.io的原因是因为我正在尝试连接到Flash客户端,而且我已经在stackoverflow上读了很多线程,socket.io并不意味着连接到flash clent。我有工作代码将节点套接字服务器连接到在flash(actionscript 3)中创建的套接字客户端,但它将信息广播给连接到套接字的每个人。我认为如果有某种方式将信息发送到特定的套接字ID,那么我就会开展业务。我查看了文档并且没有找到关于如何执行此操作的任何信息,但是我再也找不到有关文档中特定套接字ID的任何文档,但是使用“socket.id”会给出id,所以我我想知道是否有一些无证的方法可以做到这一点。

而且仅仅是因为这是一个纸牌游戏,每个玩家连接只是将他们的卡发送给他们。游戏逻辑由服务器端负责,我有这个工作。现在我只需要让每个玩家获得他们需要的信息。感谢。

的Darryl

1 个答案:

答案 0 :(得分:0)

我确信您可以将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的维护者非常友好,并会告诉你如何做到这一点最痛苦的。

最后,要使用普通节点完成此操作,您必须自己跟踪所有活动套接字连接(会话),并仅将该消息发送到该特定套接字。这是一个平凡的任务,但我认为有足够的教程可以教你这个(你也可以看看socket.io他们是如何实现这一点的,虽然这是一个非常大的项目/代码库)。

我希望这能回答你的问题。如果没有,我建议您在评论中提出一个问题,例如。