首頁 > web前端 > js教程 > node.js中使用socket.io的方法_node.js

node.js中使用socket.io的方法_node.js

WBOY
發布: 2016-05-16 16:26:56
原創
1467 人瀏覽過

使用socket.io的使用建立一個socket.io伺服器即可.但是該伺服器依賴於一個已經建立的http伺服器.

在http伺服器運作之後,使用listen方法為該http伺服器附加一個socket.io伺服器.

複製程式碼 程式碼如下:

var sio=require("scoket.io");
var socket=sio.listen(server);

socket就是在server基礎上建立的一個socket.io伺服器.

當客戶端與伺服器端建立連線時,觸發socket.io服務的connection事件.

複製程式碼 程式碼如下:

socket.on("connection",function(socket){
});

回呼函數中的socket參數是伺服器端與客戶端建立連線的socket連接埠物件.

當接收到客戶端發送的訊息時,發出socket連接埠物件的message事件.

複製程式碼 程式碼如下:

socket.on("message",function(msg){
});

回呼函數的參數是客戶端發送的訊息.

可以使用socket.send(msg)向客戶端發送一個訊息.

當伺服器端可客戶端的連線中斷時觸發disconnect事件.

複製程式碼 程式碼如下:

socket.on("disconnect",funciton(){
});

此回呼函數不適用任何參數.

伺服器端server.js程式碼:

複製程式碼 程式碼如下:

 var http=require("http");
 var sio=require("socket.io");
 var fs=require("fs");
 var server=http.createServer(function (req,res) {
     res.writeHead(200,{"Content-type":"text/html"});
     res.end(fs.readFileSync("./index.html"));
 });
 server.listen(1337);
 var socket=sio.listen(server);
 socket.on("connection", function (socket) {
    console.log("客戶端建立連線");
     socket.send("你好");
     socket.on("message", function (msg) {
         console.log("接收到一個訊息:" msg);
     });
     socket.on("disconnect", function () {
         console.log("客戶端斷開連線.");
     });
 });

建立客戶端index.html程式碼:

複製程式碼 程式碼如下:

 
 
 
    
    
    
     <script><br />          var socket=io.connect();<br />          socket.on("message", function (data) {<br />              console.log(data);<br />              socket.send("訊息已接受至.")<br />          });<br />          socket.on("disconnect", function () {<br />              console.log("伺服器端斷開連線.");<br />          });<br />      </script>
 
 
 
 

這段程式碼:/socket.io/socket.io.js有伺服器端socket.io類別庫提供,不需要再客戶端實際放置一個socket.io.js檔案.

在腳本檔案中,首先使用io.connect()方法連接伺服器端socket.io伺服器.

此方法傳回一個與伺服器端建立連線的客戶端socket連接埠物件.

當接受到伺服器端發送的訊息時,觸發客戶端socket連接埠物件的message事件.

複製程式碼 程式碼如下:

socket.on("message",function(msg){
});

msg是伺服器端發送的資料;

也可以使用客戶端的socket物件的send()方法向伺服器端傳送資料.

複製程式碼 程式碼如下:

socket.send(msg);

當伺服器端斷開連線時,觸發客戶端socket連接埠物件的disconnect事件,

複製程式碼 程式碼如下:

socket.on("disconnect",function(){
})

這個回呼函數不使用任何參數.

注意:

客戶端的訊息機制與伺服器端的訊息處理機制是完全一致的.因為socket.io確保客戶端與伺服器端共用相同的API.

運行後的結果:

當關閉瀏覽器是,就斷開了與伺服器的連接,此時伺服器端觸發disconnect事件,客戶端斷開連接.

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板