WebSocket服务器可以与承载Web应用程序的Web服务器不同吗


Can a WebSocket Server be different from Web Server that hosts the web-app?

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

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

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

我实际上想让这个WebSocket服务器与这个实时数据WCF服务对话,并让浏览器在WebSocket上更新。

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

一般来说,如果您的HTTP服务器和WebSocket服务器使用相同的端口,您的生活会轻松很多。您消除了配置障碍和防火墙挑战(而您的HTTP服务器或WebSocket服务器(或两者都不使用)都使用标准端口:80/443)。

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

起源被认为是不同的,即使只是港口不同。查看有关同源政策的更多详细信息。

至于跨源配置,您必须在您的WebSocket服务器上声明以下内容:继续并服务来自myHTTP服务器加载的HTML页面的请求(它有一个不同的源,在您的情况下是不同的端口,与WebSocket服务器的端口不同)。