如何将服务器端口分配给客户端

时间:2019-03-23 22:37:02

标签: javascript node.js socket.io

我有一个带有多个节点项目的节点服务器。我使用nginx使其在端口80上全部响应。现在,这适用于初始的HTTP请求。对于websocket,我需要使用直接服务器端口。为了在开发过程中保持一切正常,我想尝试一下,项目将具有一个开发版和一个实时版本。一旦dev稳定,我将其复制到活动文件夹中。实时文件夹由systemctl脚本运行,在该脚本中,我定义了实时版本的不同端口,因此我可以在不停止实时运行的情况下进行开发。我现在遇到的问题是,如何获得客户端Javascript中正在运行的服务器端口,以便开发页面连接到开发端口,反之亦然?

目前,我仅使用express,socket.io和mysql。我没有安装其他的npm软件包。我搜索了分配,但没有糊涂可以找到。我找到了如何将套接字连接到页面url的方法,但是我不能使用它,因为该URL始终位于端口80上。此外,我发现分配了庞大的软件包,这些软件包对我没有用,因为原始页面只是静态的,动态的在websockets上运行。

有什么办法可以解析客户端.js文件中的端口号,就像我可以在php中轻松完成一样?如果是这样,那将是最有效的方法。我可以让javascript检查页面是否使用实时URL或开发URL,但我不希望将我的开发URL硬编码到JS中,以供所有人查看。

1 个答案:

答案 0 :(得分:0)

  1. 运行第三个node.js socket.io服务器程序,所有客户端都首先连接到该服务器。

  2. 在此简单的node.js程序中,以任何方式确定客户端的类型。例如开发/生产用户的不同用户ID

  3. 根据服务器的类型(开发或生产)将服务器URL和端口发送到客户端

  4. 您还可以使用此技术将用户分隔到不同的生产服务器。