0

我有一个小聊天应用程序,我正在用 socketio 编写。我有在 Chrome 和 Firefox 中工作的部分,但 Internet Explorer 7-9 都有问题。

我在 socket.io.js 之前和之后都包含了 WebSocketMainInsecure.swf 和 WebSocketMain.swf(不是同时),但我得到了错误。

这是错误,http://screencast.com/t/uUsnyGLV 我可以看出它与 flash/swf 对象有关。这就是我包含 swf 的方式,

<object width="0" height="0">
    <param value="resources/lib/socketio/WebSocketMainInsecure.swf">
    <embed src="resources/lib/socketio/WebSocketMainInsecure.swf">
    </embed>
</object>
<script type="text/javascript" src="resources/lib/socketio/socket.io.js"></script>

任何想法我做错了什么?谢谢!

编辑 - 在查看 socket.io 的开发版本中的错误后,它看起来像一个带有 id 的元素 webSocketFlash 丢失了。我尝试添加具有该 ID 的 iframe,还尝试将 ID 添加到对象标记中。虽然仍然有同样的错误。

我在nodejs中也有这个配置。

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

我还在端口 3000 上运行 nodejs,并在端口 80 上使用 apache 提供我的文件

4

1 回答 1

0

I found the issue. I was using location.origin to create my socket like this,

var socket = io.connect(location.origin + ":3000");

but IE doesn't have location.origin. Now I'm using this,

var socket = io.connect(location.protocol + "//" + location.host + ":3000");
于 2013-03-07T06:01:21.410 回答