2017-12-05 19 views
1

WebSocketに接続しようとしているこのJSコードがありますが、URL変数に問題があります。WebSocket URL変数が定義されていません

var tipoChat = 1; 
 
var escolherWebSocket = 1; 
 
var unidade = prompt('Qual o IP do Provador?'); 
 
var loja = prompt('Qual o codigo da Loja?'); 
 
var url; 
 
ws = new WebSocket(url); 
 
     
 

 
// tipoChat 1 Produto 
 
// tipoChat 2 Vendedor 
 
// tipoChat 3 Atendente 
 

 

 
function chatProduto() { 
 
    tipoChat = 1; 
 

 
    $("#btnProduto").addClass("btn-menuStyle-active"); 
 
    $("#btnAtendente").removeClass("btn-menuStyle-active"); 
 
    $("#btnVendedor").removeClass("btn-menuStyle-active"); 
 

 
    $("#provador-produto").removeClass("show-chat1"); 
 
    $("#provador-produto").removeClass("show-chat2"); 
 
     
 

 
} 
 

 
function chatVendedor() { 
 
    tipoChat = 2; 
 

 
    $("#btnProduto").removeClass("btn-menuStyle-active"); 
 
    $("#btnAtendente").removeClass("btn-menuStyle-active"); 
 
    $("#btnVendedor").addClass("btn-menuStyle-active"); 
 

 
    $("#provador-produto").addClass("show-chat2"); 
 
    $("#provador-produto").removeClass("show-chat1"); 
 
    
 

 

 
} 
 

 
function chatAtendente() { 
 
    tipoChat = 3; 
 

 
    $("#btnProduto").removeClass("btn-menuStyle-active"); 
 
    $("#btnAtendente").addClass("btn-menuStyle-active"); 
 
    $("#btnVendedor").removeClass("btn-menuStyle-active"); 
 

 
    $("#provador-produto").addClass("show-chat1"); 
 
    $("#provador-produto").removeClass("show-chat2"); 
 
     
 

 

 

 
} 
 

 

 
function conectar() { 
 
    $('#btnConectar').hide(); 
 
    $('#btnDesconectar').show(); 
 
    
 
       ws.onopen = function() { 
 

 
        $('#messages').prepend('Connected <br/>'); 
 
        $('#cmdSend').click(function() { 
 

 
         ws.send($('#txtMessage').val()); 
 

 
         $('#txtMessage').val(''); 
 

 
        }); 
 
        
 
    
 
} 
 
} 
 

 
switch (tipoChat) { 
 

 
    case "1": // Chat Produto 
 

 
     switch (escolherWebSocket) { 
 

 
      case "1": //CBYK 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      case "2": //Centauro 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      default: 
 
       alert("Código de Socket Inválido"); 
 
     } 
 

 
    case "2": // Chat Vendedor 
 

 
     switch (escolherWebSocket) { 
 
      case "1": 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      case "2": 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      default: 
 
       alert("Código de Socket Inválido"); 
 
     } 
 

 
    case "3": //Chat atendente 
 
     switch (escolherWebSocket) { 
 
      case "1": 
 
       var url = 'ws://example0'; 
 

 
       break; 
 

 
      case "2": 
 
       var url = 'ws://example1'; 
 
       break; 
 

 
      default: 
 
       alert("Código de Socket Inválido");  
 
}}

、これは、コンソール上の私のエラーです:

キャッチされないのDOMExceptionは 'のWebSocket' を構築するために失敗しました:URL '未定義の' が無効です。

誰かが、スイッチがUrl変数を設定していない理由を言うことができますか? コンソールに値を割り当てた場合にのみ機能します。

EDIT
何らかの理由で、私は、コンソール上のURL変数を呼び出すときに、結果がさえ、私はスイッチの後のWebSocketを初期化し、未定義です。 URL変数がジャストトップに「URL」の変数を初期化

var typeChat = 1; 
 
var escolherWebSocket = 1; 
 
var url; 
 

 
switch (typeChat) { 
 

 
    case "1": // Chat Produto 
 

 
     switch (escolherWebSocket) { 
 

 
      case "1": //CBYK 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      case "2": //Centauro 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      default: 
 
       alert("Código de Socket Inválido"); 
 
     } 
 

 
    case "2": // Chat Vendedor 
 

 
     switch (escolherWebSocket) { 
 
      case "1": 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      case "2": 
 
       var url = 'ws://example0'; 
 
       break; 
 

 
      default: 
 
       alert("Código de Socket Inválido"); 
 
     } 
 

 
    case "3": //Chat atendente 
 
     switch (escolherWebSocket) { 
 
      case "1": 
 
       var url = 'ws://example0'; 
 

 
       break; 
 

 
      case "2": 
 
       var url = 'ws://example1'; 
 
       break; 
 

 
      default: 
 
       alert("Código de Socket Inválido");  
 
}} 
 

 
ws = new WebSocket(url);

+1

...英語で変数を記述してください、それは誰にとっても読み取ることがそんなに簡単だ... – Cruz

答えて

0

あなたは、未定義のURLでWebSocketを初期化することはできません。何らかの理由で別のポルトガル語系の男から

var url; 
switch (tipoChat) { 
    case 1: 
     url = 'foo'; 
} 
ws = new WebSocket(url); 
+0

、私は、コンソール上でURL変数を呼び出したとき、結果は私はWebSocketを初期化しています。 URL変数が定義されていない理由が分かりません – Kirk

+0

更新されたコードを表示できますか? –

+0

私は動作していないコードで質問を更新しました – Kirk

0

定義されていない理由を私は本当に知りません。最初に初期化することなく 'url'変数を使ってwebsocketを作成しているからです。したがって、 'url'変数は現時点では未定義です。

または、「url」変数に割り当てられているソケットを作成します。つまり、スイッチのブロックケース内に変数があります。

var url; 
ws = new WebSocket(url); 

あなたはnew WebSocket(url)を初期化する前に、あなたのswitchステートメントを実行する必要があります。あなたがここにいるよう

関連する問題