2013-04-17 22 views
5

我想知道是否有任何方式将socket.io套接字传递给node.js中的分叉进程,或者在分叉进程中重建socket.io套接字?node.js将socket.io套接字传递给分支进程

child = require("child_process").fork("worker.js") 
io.sockets.on("connection", function(socket){ 
    child.send("socket", socket); //this definitely fails now 
}) 
+1

'cluster'模块怎么样?如果你想聚类。 [此链接'socket.io'+'express'聚类示例](https://gist.github.com/nulltask/1877289) –

+0

您可以使用集群模块做fork – user568109

回答

0

解决方案:使用Redis的

我敢肯定你会很高兴知道socket.io,Redis的是否存在等

有了它,你将能够发送/接收事件(共享客户端)在您的代码的多个实例(进程或服务器)之间。 Read more : socket.io-redis (Github Repo.)

有了这个,你可以扩展:

  1. 垂直(增加每台机器的线程数)
  2. 水平 (部署更多的 “主人” 翻过更多的机器)

There is an example app at github

这是一个非常简单的Node.JS客户端/服务器应用程序,它显示 如何将Express.js,Socket.IO 1.x和socket.io-redis设置在一起。

作为了解如何缩放的起点 需要多个服务器进程的Socket.IO实时应用程序非常有用。 Redis被用作存储点(适配器),以便在不同的进程或服务器上运行多个 socket.io实例,这些实例可以全部向对端发送事件并向对方发送事件。

相关问题