2014-02-27 65 views
0

這是一個Web套接字客戶端。爲什麼我需要輸入兩次myURL?服務器是否總是監聽/socket.io/socket.io.js所在的URL?Websockets多餘的URL信息?

<!doctype html> 
<html> 
    <head> 
     <script src='http://code.jquery.com/jquery-1.7.2.min.js'></script> 
     <script src='myURL:8888/socket.io/socket.io.js'></script> 
     <script> 
      var socket = io.connect('myURL:8888'); 

      socket.on('welcome', function(data) { 
       $('#messages').append('<li>' + data.message + '</li>'); 

       socket.emit('i am client', {data: 'foo!'}); 
      }); 
      socket.on('time', function(data) { 
       console.log(data); 
       $('#messages').append('<li>' + data.time + '</li>'); 
      }); 
      socket.on('error', function() { console.error(arguments) }); 
      socket.on('message', function() { console.log(arguments) }); 
     </script> 
    </head> 
    <body> 
     <ul id='messages'></ul> 
    </body> 
</html> 

回答

2

而不必你如何精確地socket.io工作任何想法:

「myURL」的第一個實例是在這裏裝載socket.io庫。這只是一個JavaScript文件,然後在您的瀏覽器中執行。

第二個實例是您建立到套接字端點的連接。這裏您需要提供服務器偵聽的URL +端口組合。

這兩個可以連接,例如,因爲腳本是由你想連接的服務器託管的(這裏似乎就是這種情況),但它們並不需要。

該腳本可以例如從本地文件系統加載,而服務器在另一臺機器上運行。在這種情況下,不會再有URL的重複。

+0

是否必須爲特定nodeJS後端自定義生成socket.io.js?或者一個socket.io.js腳本適用於所有nodeJS後端? – user2939415

+0

JavaScript庫不是特定於後端的。 – gzost