仅限Internet Explorer中的socketio问题

时间:2013-03-07 04:09:39

标签: javascript socket.io

我有一个小聊天应用程序,我正在写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版本的socket.io中的错误后,它看起来像缺少id,webSocketFlash的元素。我尝试添加带有该ID的iframe,并尝试将id添加到object标记中。但是仍然有同样的错误。

我在nodejs中也有这个配置。

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

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

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。我正在使用location.origin来创建我的套接字,

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

但是IE没有location.origin。现在我正在使用它,

var socket = io.connect(location.protocol + "//" + location.host + ":3000");