1

私は現在、websocket を使用する jQuery モバイルと 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 のコードを送信関数の外に置くと、すべて正常に動作します。何か案は?

編集: jQuery モバイルを使用せず、AJAX を無効にして、ボタンの通常の onclick-event から websocket を呼び出してみました。同じ動作。

4

0 に答える 0