【发布时间】:2012-06-26 07:44:58
【问题描述】:
我正在运行一个在后端使用 Symfony 2 PHP 框架的实时 Web 应用程序。我想为我的实时交互实现 websockets。是否可以在与我的 Symfony 2 服务器相同的机器上安装 node.js 服务器来处理 websocket 连接?如果是这样,打开另一个端口(比如 81)来处理 websocket 连接是标准的吗?
【问题讨论】:
我正在运行一个在后端使用 Symfony 2 PHP 框架的实时 Web 应用程序。我想为我的实时交互实现 websockets。是否可以在与我的 Symfony 2 服务器相同的机器上安装 node.js 服务器来处理 websocket 连接?如果是这样,打开另一个端口(比如 81)来处理 websocket 连接是标准的吗?
【问题讨论】:
是的,这是可能的。为什么不?这只是另一个应用程序。
关于第二个问题。您可以打开另一个易于处理的端口(WebSockets 不受跨域策略的限制),但您可能会丢失一些数据(cookie),或者您可以放置一个代理,它将 HTTP 请求发送到 Web 服务器并将 WS 请求发送到Node.JS 服务器。后者可以通过具有特殊标题Upgrade: websocket 来识别。无论哪种方式,WebSocket 服务器都必须监听不同的端口(除非您完全在 Node.JS 中开发应用程序)。
【讨论】: