国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 13:43:50
字體:
來源:轉載
供稿:網友

使用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代碼:

復制代碼 代碼如下:

 <!DOCTYPE html>
 <html>
 <head lang="en">
     <meta charset="UTF-8">
     <title></title>
     <script src="/socket.io/socket.io.js"></script>
     <script>
         var socket=io.connect();
         socket.on("message", function (data) {
             console.log(data);
             socket.send("消息已接受到.")
         });
         socket.on("disconnect", function () {
             console.log("服務器端斷開連接.");
         });
     </script>
 </head>
 <body>
 </body>
 </html>

這段代碼:/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事件,客戶端斷開連接.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇远县| 卢湾区| 阳高县| 苍溪县| 定远县| 龙江县| 乐都县| 紫金县| 孝义市| 会昌县| 苗栗市| 隆化县| 阜南县| 佛学| 涿州市| 芮城县| 涞水县| 石阡县| 益阳市| 泗阳县| 屏东县| 枞阳县| 云林县| 平山县| 双桥区| 大宁县| 高雄市| 建平县| 海南省| 雅安市| 类乌齐县| 巴林左旗| 二连浩特市| 铜川市| 榆树市| 阆中市| 财经| 疏附县| 胶州市| 石棉县| 五华县|