web-socket.js 和 WebSocket

发布于 2024-11-03 17:44:40 字数 747 浏览 0 评论 0原文

我正在尝试为浏览器实现网络套接字。 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);
};

可能是什么原因?

I am trying to do a web socket implementaton for browser. Firefox, Chrome works great, but when i try in IE, it creates the socket object but never calls the timer.

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);
};

What could be the reason ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅笑轻吟梦一曲 2024-11-10 17:44:40

你说的是哪个版本的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 播放器
10 或更高版本 它可能会也可能不会
其他浏览器,如 Safari、Opera
或 IE 6。这些浏览器的补丁是
感谢,但我不会继续工作
修复这些特定的问题
我自己浏览器。

What version of IE are you talking about ?
What websocket library are you using ?

Web sockets are not supported by older version of IE. I think you need to use long polling instead of websockets for those older browsers...

If your using this : https://github.com/gimite/web-socket-js
It's stated in the Documentation :

It should work on: Google Chrome 4 or
later (just uses native
implementation) Firefox 3.x, 4.x,
Internet Explorer 8, 9 + Flash Player
10 or later It may or may not work on
other browsers such as Safari, Opera
or IE 6. Patch for these browsers are
appreciated, but I will not work on
fixing issues specific to these
browsers by myself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文