WebSocket服务器可以与托管Web应用程序的Web服务器不同吗?

时间:2013-12-18 07:39:18

标签: php .net wcf apache websocket

我计划为我正在创建的工业Web HMI应用程序实现或使用WebSocket Server的.NET解决方案,我的Web HMI应用程序由Apache Web服务器和PHP托管。

因此,由Apache服务器(在端口81上)托管的网页是否可能将WebSocket连接并打开到另一个端口(例如82)上运行(在.NET平台上自己)的Web Socket服务器?

我目前的方式是使用setInterval进行AJAX轮询,在Apache服务器上,cURL + PHP将请求传输到实时数据WCF服务。

我实际上希望让这个WebSocket服务器与这个实时数据WCF服务进行通信,并让WebSockets上的浏览器更新。

如果WebSocket服务器可以与Apache Web服务器并行托管,则不需要.NET WebSocket服务器。如果有一个可以托管在同一端口或其他端口上的Web套接字服务器的Apache + PHP解决方案,我没关系。

1 个答案:

答案 0 :(得分:2)

一般情况下,如果您的HTTP服务器和WebSocket服务器使用相同的端口,您的生活将变得更加轻松。您消除了配置障碍以及防火墙挑战(而您的HTTP服务器或WebSocket服务器(或其中任何一个)都没有使用标准端口:80/443。

如果HTML页面和WebSocket服务器的来源不同,则必须将系统配置为跨源。

即使只有端口不同,起源也被认为是不同的。请参阅same origin policy

的详细信息

对于跨源配置,您必须在WebSocket服务器上声明以下内容:继续并执行来自从我的HTTP服务器 <(>)加载的HTML页面的请求(具有不同的来源,即您的情况下的不同端口,而不是WebSocket服务器的端口。