【问题标题】:How to start a separate thread from a sockets.io triggered thread如何从 sockets.io 触发的线程启动单独的线程
【发布时间】:2012-03-30 08:43:40
【问题描述】:

好的,所以我正在开发一个多人游戏,使用: Node.js、Sockets.io 和 Redis

无论如何玩家都可以创建一个游戏,然后开始一个游戏,现在游戏逻辑需要大约每 10 秒更新一次,所以这是通过调用一个方法来完成的,该方法将通过 setTimeout 每 x 秒调用一次。

我担心的是,当连接的客户端连接、创建游戏(启动 setTimeout 周期)然后断开连接时,这将停止任何 setTimeout,从而终止所有其他玩家的游戏。即使 setTimeout 在用户断开连接时继续被触发,我仍然希望理想地单独运行它到用户的 socket.io 连接。

是否有一种简单的方法可以在 node.js 中启动单独的进程/线程? (来自已连接的 socket.io 连接)

【问题讨论】:

    标签: javascript multithreading node.js socket.io settimeout


    【解决方案1】:

    可能取决于您的目的。比如有这样的:

    http://nodejs.org/api/child_process.html

    如果不是这样,您可能需要查看节点纤维

    【讨论】:

    • 那么纤程和子进程有什么区别呢?而且我发现在用户断开他们的websocket连接后超时方法实际上仍然有效,我应该保持这种方式吗?还是有理由不呢?
    • Fibers 为 Node aka yield() 等带来了类似线程的功能。子进程是可以与 node 并行运行的子进程(不一定是 node,但可能是 node)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多