在开发环境中,我有一个单独的nodejs进程,它在给定端口上监听socket.io。一旦客户端连接,就需要维护状态。nodejs脚本对文件进行一些处理,并通过sockets发送处理状态。这类似于一个可能永远不会结束的批处理。
如果客户端关闭浏览器然后再次打开(在开发环境中),网页将简单地重新连接到套接字并获取该特定用户后台处理文件处理的当前状态。
为了每个用户都有一个单一的进程,并确保用户始终重新连接到他们启动的同一进程上,在同一端口上,我需要管理这些进程,并为每个用户预留端口。
如何建立这种情况的单个nodejs入口点,分叉进程并相应地路由套接字连接,使用例如Nginx、PM2和/或Nodejs集群。换句话说,在这种场景下,最好的生产架构是什么?
关于状态问题:
我持有的状态不仅仅是可以存储在数据库中的变量。我有连续的文件读取流,按照用户通过连接到该进程的sockets配置的顺序依次处理。该进程还连接到另一个服务器之间的套接字,并且必须保持连接。
如果客户端关闭浏览器然后再次打开(在开发环境中),网页将简单地重新连接到套接字并获取该特定用户后台处理文件处理的当前状态。
为了每个用户都有一个单一的进程,并确保用户始终重新连接到他们启动的同一进程上,在同一端口上,我需要管理这些进程,并为每个用户预留端口。
如何建立这种情况的单个nodejs入口点,分叉进程并相应地路由套接字连接,使用例如Nginx、PM2和/或Nodejs集群。换句话说,在这种场景下,最好的生产架构是什么?
关于状态问题:
我持有的状态不仅仅是可以存储在数据库中的变量。我有连续的文件读取流,按照用户通过连接到该进程的sockets配置的顺序依次处理。该进程还连接到另一个服务器之间的套接字,并且必须保持连接。