Kaazing一直与IE9断开连接

时间:2013-03-08 23:19:17

标签: internet-explorer-9 websocket disconnection kaazing

我使用Kaazing HTML5 ver构建了一个原型应用程序。 3.5.0。该应用程序使用ByteSockets通过kaazing与tcp服务器通信。该应用程序从服务器接收ping包并发送另一个包作为响应。

该应用程序适用于chrome和firefox,但在建立连接10分钟后,它停止使用IE9接收ping包,日志中没有明显的异常或错误,但如果我手动将响应包发送到服务器我的代码捕获已关闭的连接事件。知道如何解决这个问题?

var webSocket = new ByteSocket(location_.value);
webSocket.onopen = function(evt) {
            var buf = new ByteBuffer();
            /*protocol handshake related stuff*/
            buf.putInt(0);
            buf.putShort(200);
            buf.putShort(6);
            buf.putShort(1);
            buf.putInt(0);
            buf.flip();
            webSocket.send(buf);
            buf = new ByteBuffer();
            buf.putString("REQUESTING SERVICE", Charset.UTF8);
            buf.flip();
            webSocket.send(buf);
};

webSocket.onmessage = function(evt) {
            var serverid;
            var msgtype;
            var bodysize;
            var body;
            if (connection_active == false) {
                var greeting = evt.data.getString(Charset.UTF8);
                if(greeting=="OK"){
                    connection_active = true;
                }
                return;
            } else {
                serverid = evt.data.getInt();
                msgtype = evt.data.getUnsignedShort();
                evt.data.getUnsignedShort();//year
                evt.data.get();//month
                evt.data.get();//day
                evt.data.getInt();//hour
                bodysize = evt.data.getUnsignedShort();
                if (evt.data.remaining >= bodysize ) {
                    body = evt.data.getBytes(bodysize);
                }
            }
            /*ping message*/
            if (msgtype == 100) {
                var buf = new ByteBuffer();
                buf.putInt(serverid);
                buf.putShort(1);//I am alive
                buf.putShort(0);//bodysize
                buf.flip();
                webSocket.send(buf);
            }
};

webSocket.onclose = function(evt) {
    connection_active=false;
};

每隔5秒收到一次ping消息。

0 个答案:

没有答案