【问题标题】:Socket.io v1.0.X unknown transport "polling"Socket.io v1.0.X 未知传输“轮询”
【发布时间】:2015-04-03 22:30:43
【问题描述】:

Y 在连接版本 1.0 中遇到了我在 0.9.X 版本中没有的问题。

我的 Django 在 http://app.myhost.com 中运行,我的节点服务器在 http://live.myhost.com:8001 中运行

在我可以将我连接到节点服务器之前:

客户:

io.connect(//live.myhost.com:8001);

服务器:

io.set('transports', ['websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'jsonp-polling']);

但现在我有一个问题(没有正确获取实时网址):

GET http://app.myhost.com:8000/socket.io/?EIO=2&transport=polling&t=1401468282894-1 404 (NOT FOUND)

如果我重写 (io.connect(http://live.myhost.com:8001)) 现在有一个新问题:

XMLHttpRequest cannot load http://live.myhost.com:8001/socket.io/?EIO=2&transport=polling&t=1401468608168-1. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://app.myhost.com' is therefore not allowed access.

在调试模式下到 socket.io 我有更多信息:

engine:core intercepting request for path "/socket.io/" +0ms
engine handling "GET" http request "/socket.io/?EIO=2&transport=polling&t=1401470024479-48" +0ms
engine unknown transport "polling" +3ms

【问题讨论】:

  • 您找到解决方案了吗?据我所知,socket.io的1.0版本有一些变化,现在不支持传输jsonp.polling。只需键入 polling,但还有其他问题。我的页面现在也无法使用新版本。

标签: node.js websocket socket.io


【解决方案1】:

默认Socket.IO 1.0.4 允许pollingwebsocket 传输。您通过设置自定义传输删除了polling 传输。只需将polling 传输返回:

io.set('transports', ['websocket', 
                      'flashsocket', 
                      'htmlfile', 
                      'xhr-polling', 
                      'jsonp-polling', 
                      'polling']);

2015 年 4 月 3 日更新

0.9.15 是具有有效set 方法的最新版本。版本1.0.0-pre 删除了set 方法并通过服务器初始化引入了设置。版本1.0.0-pre2 添加了原始set 方法以实现向后兼容性。使用新符号:

var socket = io({
  transports: [
    'websocket', 
    'flashsocket', 
    'htmlfile', 
    'xhr-polling', 
    'jsonp-polling', 
    'polling'
  ]
});

【讨论】:

  • 从 Socket1 开始,.set 已被弃用,因此您应该修改答案。
  • 对于 socket.io 1.0.+ 它将是 io.use( ... )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 2019-01-17
  • 2014-12-23
  • 2015-11-27
  • 1970-01-01
  • 2014-07-22
相关资源
最近更新 更多