【问题标题】:Socket.IO : Forcing flash sockets, "No transport available"Socket.IO:强制闪存套接字,“没有可用的传输”
【发布时间】:2011-04-28 13:00:14
【问题描述】:

问题:

在某些情况下连接 socket.IO 时遇到问题,因此想确保所有传输方法都正常工作。当我强制使用 flashflash 套接字时,我收到错误“没有可用的传输”。 WebSocketMain.swf 文件与 html 文件位于同一目录中。

我正在使用此代码连接到套接字,

var socket = new io.Socket(null,{port: 8086, rememberTransport:false, transports:['flashsocket']}); 

示例: http://thebeer.co/labs/realTime.php

(更多信息请浏览源代码,我的 JS 在包含的 socket.io pulgin 脚本下)

【问题讨论】:

  • 它是否适用于其他传输?
  • @emmerman 如果我不指定它将连接的传输。仅限 Chrome 测试。
  • 查看Flashsocket.check 函数并从那里逐步运行if 条件以找出问题所在。

标签: javascript flash sockets websocket socket.io


【解决方案1】:

至少部分问题是

if (window.WebSocket) return;

在 socket.io.js 的第 1887 行。

如果 WebSockets 已经在工作,它不会配置 flash。如果需要测试,请注释掉该行。

【讨论】:

  • 现在在 WS.check() 中进行检查:WS.check = function () { return ('WebSocket' in global && !('__addTask' in WebSocket)) || 'MozWebSocket' in global; };
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 2012-10-31
  • 2013-01-09
  • 2015-10-30
相关资源
最近更新 更多