我正在尝试为浏览器执行Web套接字实现。 Firefox,Chrome效果很好,但是当我在IE中尝试时,它会创建套接字对象,但从不调用计时器。
WebSocket = function(url, protocol, proxyHost, proxyPort, headers) {
var self = this;
self.__id = WebSocket.__nextId++;
WebSocket.__instances[self.__id] = self;
self.readyState = WebSocket.CONNECTING;
self.bufferedAmount = 0;
self.__events = {};
// Uses setTimeout() to make sure __createFlash() runs after the caller sets ws.onopen etc.
// Otherwise, when onopen fires immediately, onopen is called before it is set.
setTimeout(function() {
WebSocket.__addTask(function() {
WebSocket.__flash.create(
self.__id, url, protocol, proxyHost || null, proxyPort || 0, headers || null);
});
}, 0);
};
可能是什么原因?
答案 0 :(得分:0)
你在谈论什么版本的IE? 你在使用什么websocket库?
旧版IE不支持Web套接字。我认为你需要为那些旧浏览器使用长轮询而不是websockets ...
如果你使用这个:https://github.com/gimite/web-socket-js 它在文档中说明:
它应该适用于:Google Chrome 4或 以后(只使用原生 实现)Firefox 3.x,4.x, Internet Explorer 8,9 + Flash Player 10或更高版本它可能会或可能不会工作 其他浏览器,如Safari,Opera 或IE 6.这些浏览器的补丁是 赞赏,但我不会继续努力 解决这些问题 浏览器本身。