加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:34:24 所属栏目:百科 来源:网络整理
导读:我想编写一个使用带有node.js和socket.io的WebSockets与Django结合使用的应用程序,并将通过Redis共享数据(该句中有很多流行语!). 如果我在另一个端口(例如5555)上运行节点,我是否可以使用WebSocket连接它(或使用socket.io的后备方法,如长轮询等)或same orig
我想编写一个使用带有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聊天中看到此信息 – 每个选项卡都连接到不同的子域在长期轮询期间克服这些限制).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读