WebSockets(或AJAX长轮询等)可以在与原始HTTP请求不同的端口上运行吗?

前端之家收集整理的这篇文章主要介绍了WebSockets(或AJAX长轮询等)可以在与原始HTTP请求不同的端口上运行吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想编写一个使用带有node.js和socket.io的WebSockets与Django结合使用的应用程序,并将通过Redis共享数据(该句中有很多流行语!).

如果我在另一个端口(例如5555)上运行节点,我是否可以使用WebSocket连接它(或使用socket.io的后备方法,如长轮询等)或same origin policy会给我带来问题吗?

如果是这样,我怎么能绕过它们呢?

Socket.io支持JSONP轮询,它通常用于跨域长轮询(除了 CORS,每个浏览器都不支持).关于WebSockets的跨域主题specification声明如下:

The server includes the hostname in
the |Sec-WebSocket-Location| field
of its handshake,so that both the
client and the server can verify
that they agree on which host is in
use.

您“应该”能够使用具有不同端口的WebSockets,事实上您可能没有其他选择,因为其他Web服务器将使用像80这样的标准端口来为您的基于Django的应用程序提供服务.如果您使用相同的域和端口,则浏览器特定的parallel connection limits也可能存在问题(例如,当您尝试在同一浏览器上下文中打开多个选项卡时,您可以在Facebook聊天中看到此信息 – 每个选项卡都连接到不同的子域在长期轮询期间克服这些限制).

原文链接:https://www.f2er.com/ajax/159815.html

猜你在找的Ajax相关文章