私はブラウザ用のWebソケット実装をしようとしています。 Firefox、Chromeは素晴らしいですが、IEで試してみるとソケットオブジェクトが作成されますが、タイマーは呼び出されません。web-socket.jsとWebSocket
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);
};
どのような理由が考えられますか?
私はIE8 + Flash Player 10.2を使用しています。理想的には、setTimeout内のこの関数が呼び出されているはずです。ブレークポイントを置くとヒットしません。 – user705737
私はそれに閉じ込めていると思います。私は、JSはフラッシュを呼び出して有効なWebSocketを与え、フラッシュはポリシーファイルのためにポート846に私のwebsocketサーバーのIPを要求します。それを取得していないので、有効なWebSocketオブジェクトを取得していません。どのようにこのポリシーファイルをフラッシュするのに役立つかの例はありますか? – user705737
ここをクリックしてください:http://www.lightsphere.com/dev/articles/flash_socket_policy.html – dwarfy