根据提交的IP调用Websocket

时间:2013-07-14 18:12:08

标签: javascript jquery-mobile websocket

我目前正在使用jQuery mobile和使用websockets的Phonegap开发应用程序。在我的html中,我有一个表单,用户可以输入他们想要连接的服务器的IP。这是我的JS代码:

$(document).ready(function(){   
$('#connect').submit(function(){
    var ip = $('#iptext').val();
    var wsuri = "ws://" + ip + ":9021/ws";
    jQuery.mobile.changePage('#index', { allowSamePageTransition: true });

    if ("WebSocket" in window) {
        sock = new WebSocket(wsuri);
    } else if ("MozWebSocket" in window) {
       sock = new MozWebSocket(wsuri);
    } else {
       log("Browser does not support WebSocket!");
       window.location = "http://autobahn.ws/unsupportedbrowser";
    }

    ellog = document.getElementById('log');

    if (sock) {
       sock.onopen = function() {
          log("Connected to " + wsuri);
       }

       sock.onclose = function(e) {
          log("Connection closed (wasClean = " + e.wasClean + ", code = " + e.code + ", reason = '" + e.reason + "')");
          sock = null;
       }

       sock.onmessage = function(e) {
          log("Got echo: " + e.data);
          parseMessage(e.data);
       }
    }

});

});

表单已正确提交,但与服务器的连接立即关闭,错误代码为1006.如果我在提交函数之外放置了websocked的代码,一切正常。有什么想法吗?

编辑:我尝试通过按钮上的常规onclick事件调用websocket,不使用jQuery mobile,并禁用AJAX。同样的行为。

0 个答案:

没有答案