最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node中socket.io的事件使用詳解

 更新時間:2014年12月15日 12:16:21   投稿:hebedich  
這篇文章主要介紹了node中socket.io的事件使用詳解,需要的朋友可以參考下

socket.io類庫不但可以相互發(fā)送消息,而且還可以通過socket端口對象的emit方法互相發(fā)送事件.

emit在之前的事件上說過現(xiàn)在一句話帶過:emit是用來手動觸發(fā)事件的.

復(fù)制代碼 代碼如下:

socket.emit(event,data,function(data1,data2......){
});

在使用emit方法發(fā)送事件時,可以再另一端使用socket端口對象的on方法會once方法監(jiān)聽.

復(fù)制代碼 代碼如下:

socket.on(event,function(data,fn){
});
socket.once(event,function(data,fn){
})

上面的回調(diào)函數(shù)中的參數(shù)data:對方發(fā)送的事件中攜帶的數(shù)據(jù),

fn:對方在發(fā)送事件時指定的callback回調(diào)函數(shù).

案例1:當(dāng)服務(wù)器和客戶端連接后,向客戶端發(fā)送一個news事件,事件中攜帶一個對象,該對象的hello屬性值為"你好".在接收到客戶端發(fā)送my other event事件時,在控制臺中輸出"服務(wù)器端就收到數(shù)據(jù)"+客戶端發(fā)送事件中攜帶的數(shù)據(jù).

服務(wù)器端代碼,server.js

復(fù)制代碼 代碼如下:

 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) {
     socket.emit("news",{hello:"你好"});
     socket.on("my other event", function (data) {
         console.log("服務(wù)器端接受到信息%j",data);
     });
 });

客戶端index.html代碼:

復(fù)制代碼 代碼如下:

 <!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("news", function (data) {
             console.log(data.hello);
             socket.emit("my other event",{my:"data"});
         });       
     </script>
 </head>
 <body>
 
 </body>

運行結(jié)果:、
 


可以發(fā)現(xiàn)一點:執(zhí)行總是在監(jiān)聽端,而不是手動執(zhí)行端.

案例2:在手動觸發(fā)對方事件時,指定回調(diào)函數(shù).

當(dāng)客戶端和服務(wù)端連接后,向客戶端發(fā)送setName事件,事件攜帶"張三",觸發(fā)事件時,指定一個回調(diào)函數(shù),該回調(diào)函數(shù)向控制臺輸出2個參數(shù)值.

復(fù)制代碼 代碼如下:

 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) {
     socket.emit("setName","張三", function (data1,data2) {
         console.log(data1);
         console.log(data2);
     });
 });

復(fù)制代碼 代碼如下:

 <!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("setName", function (name,fn) {
            console.log(name);
             fn("李四","王五");
         });     
     </script>
 </head>
 <body>
 
 </body>
 </html>

執(zhí)行結(jié)果:

回調(diào)函數(shù)實在觸發(fā)端執(zhí)行的.

相關(guān)文章

  • nodejs實現(xiàn)獲取某寶商品分類

    nodejs實現(xiàn)獲取某寶商品分類

    這篇文章主要介紹了nodejs實現(xiàn)獲取某寶商品分類,十分的簡單實用,進入后臺直接打開控制臺,把代碼粘進去運行就OK了,有需要的小伙伴可以參考下。
    2015-05-05
  • node.js中的http.response.getHeader方法使用說明

    node.js中的http.response.getHeader方法使用說明

    這篇文章主要介紹了node.js中的http.response.getHeader方法使用說明,本文介紹了http.response.getHeader的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js 使用 Express-Jwt和JsonWebToken 進行Token身份驗證的操作方法

    Node.js 使用 Express-Jwt和JsonWebToken 進行Token身份

    這篇文章主要介紹了Node.js 使用 Express-Jwt和JsonWebToken 進行Token身份驗證的操作方法,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 詳解基于Vue+Koa的pm2配置

    詳解基于Vue+Koa的pm2配置

    這篇文章主要介紹了詳解基于Vue+Koa的pm2配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Node.js筆記之process模塊解讀

    Node.js筆記之process模塊解讀

    這篇文章主要介紹了Node.js process模塊解讀,process存在于全局對象上,不需要使用require()加載即可使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • nodejs如何在package.json中設(shè)置多條啟動命令

    nodejs如何在package.json中設(shè)置多條啟動命令

    這篇文章主要介紹了nodejs如何在package.json中設(shè)置多條啟動命令,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 在Linux系統(tǒng)上升級Node.js遇到GLIBC依賴問題的多種解決方案

    在Linux系統(tǒng)上升級Node.js遇到GLIBC依賴問題的多種解決方案

    在現(xiàn)代 Web 開發(fā)和 DevOps 實踐中,Node.js 是一個不可或缺的工具,在升級 Node.js 版本時,尤其是在較舊的 Linux 系統(tǒng)上,可能會遇到一些依賴庫不兼容的問題,特別是與 GLIBC 和 GLIBCXX 相關(guān)的錯誤,本文將詳細介紹如何解決這個依賴問題,需要的朋友可以參考下
    2025-01-01
  • 如何使用puppet替換文件中的string

    如何使用puppet替換文件中的string

    今天小編就為大家分享一篇關(guān)于如何使用puppet替換文件中的string,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 詳解使用 Node.js 開發(fā)簡單的腳手架工具

    詳解使用 Node.js 開發(fā)簡單的腳手架工具

    這篇文章主要介紹了詳解使用 Node.js 開發(fā)簡單的腳手架工具,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • koa大型web項目中使用路由裝飾器的方法示例

    koa大型web項目中使用路由裝飾器的方法示例

    這篇文章主要介紹了koa大型web項目中使用路由裝飾器的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

石家庄市| 广宗县| 将乐县| 松阳县| 壤塘县| 沙田区| 日土县| 广丰县| 化州市| 如皋市| 崇阳县| 沾化县| 资阳市| 连平县| 柯坪县| 盖州市| 岱山县| 兴宁市| 龙里县| 吴旗县| 乐陵市| 西充县| 兴文县| 榕江县| 门源| 新化县| 桑植县| 安仁县| 进贤县| 百色市| 县级市| 湖州市| 封丘县| 濉溪县| 山阳县| 准格尔旗| 玛纳斯县| 肃南| 连州市| 南汇区| 山丹县|