【发布时间】:2019-02-14 23:43:12
【问题描述】:
我有一个漂亮的全栈应用程序,在服务器端使用 NodeJS,在客户端使用 ReactJS。该应用程序依赖于 Socket.IO 包,包括服务器和客户端 API。
在我的计算机上,对于节点的 localhost 4000 和对于 react 的 localhost 3000 一切正常。每个套接字事件的完美通信。但在未来,我的设置会有所不同。
我想将服务器端代码托管在一台服务器上,这里称为 SERVER_A,客户端代码托管在另一台服务器上,这里称为 SERVER_B,充当用户的网关。我所期望的是客户端将在他的个人计算机上打开http://SERVER_B:80/myapp,我的反应应用程序将打开,并且所有套接字通信都将在 SERVER_B 和 SERVER_A 之间在内部完成,将节点应用程序发出的数据留给客户端。但真正发生的是,他的个人计算机上的用户需要同时访问 SERVER_B 的 80 端口和 SERVER_A 的 4000 端口,整个应用程序才能正常运行。
这很糟糕,因为这种类型的通信应该在后台进行。有什么方法可以限制 Node 和 React 之间的套接字侦听和发出事件,并使客户端只保留渲染的数据?
希望这很清楚,对菜鸟感到抱歉... :)
提前致谢!
【问题讨论】:
-
我不确定如何回答这个问题,因为在我看来,您想要避免的不良行为是一个实施问题。这意味着解决方案将是“编写实际执行您想要发生的事情的代码”。如果需要服务器 A 和服务器 B 的客户端之间进行实时通信,则需要打开客户端 B 到服务器 A 的套接字连接,或者将客户端和服务器 B 之间的消息转发到服务器 A。
标签: javascript node.js reactjs sockets socket.io