我计划为我正在创建的工业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解决方案,我没关系。答案 0 :(得分:2)
一般情况下,如果您的HTTP服务器和WebSocket服务器使用相同的端口,您的生活将变得更加轻松。您消除了配置障碍以及防火墙挑战(而您的HTTP服务器或WebSocket服务器(或其中任何一个)都没有使用标准端口:80/443。
如果HTML页面和WebSocket服务器的来源不同,则必须将系统配置为跨源。
即使只有端口不同,起源也被认为是不同的。请参阅same origin policy。
的详细信息对于跨源配置,您必须在WebSocket服务器上声明以下内容:继续并执行来自从我的HTTP服务器 <(>)加载的HTML页面的请求(具有不同的来源,即您的情况下的不同端口,而不是WebSocket服务器的端口。