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

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

 更新時(shí)間:2014年12月15日 12:11:07   投稿:hebedich  
這篇文章主要介紹了node.js中使用socket.io的方法,需要的朋友可以參考下

使用socket.io的使用創(chuàng)建一個(gè)socket.io服務(wù)器即可.但是該服務(wù)器依賴(lài)于一個(gè)已經(jīng)創(chuàng)建的http服務(wù)器.

在http服務(wù)器運(yùn)行之后,使用listen方法為該http服務(wù)器附加一個(gè)socket.io服務(wù)器.

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

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

socket就是在server基礎(chǔ)上創(chuàng)建的一個(gè)socket.io服務(wù)器.

當(dāng)客戶(hù)端與服務(wù)器端建立連接時(shí),觸發(fā)socket.io服務(wù)的connection事件.

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

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

回調(diào)函數(shù)中的socket參數(shù)是服務(wù)器端與客戶(hù)端建立連接的socket端口對(duì)象.

當(dāng)接收到客戶(hù)端發(fā)送的消息時(shí),發(fā)出socket端口對(duì)象的message事件.

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

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

回調(diào)函數(shù)的參數(shù)是客戶(hù)端發(fā)送的消息.

可以使用socket.send(msg)向客戶(hù)端發(fā)送一個(gè)消息.

當(dāng)服務(wù)器端可客戶(hù)端的連接斷開(kāi)時(shí)觸發(fā)disconnect事件.

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

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

該回調(diào)函數(shù)不適用任何參數(shù).

服務(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) {
    console.log("客戶(hù)端建立連接");
     socket.send("你好");
     socket.on("message", function (msg) {
         console.log("接收到一個(gè)消息:"+msg);
     });
     socket.on("disconnect", function () {
         console.log("客戶(hù)端斷開(kāi)連接.");
     });
 });

創(chuàng)建客戶(hù)端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("message", function (data) {
             console.log(data);
             socket.send("消息已接受到.")
         });
         socket.on("disconnect", function () {
             console.log("服務(wù)器端斷開(kāi)連接.");
         });
     </script>
 </head>
 <body>
 </body>
 </html>

這段代碼:/socket.io/socket.io.js有服務(wù)器端socket.io類(lèi)庫(kù)提供,不需要再客戶(hù)端實(shí)際放置一個(gè)socket.io.js文件.

在腳本文件中,首先使用io.connect()方法連接服務(wù)器端socket.io服務(wù)器.

該方法返回一個(gè)與服務(wù)器端建立連接的客戶(hù)端socket端口對(duì)象.

當(dāng)接受到服務(wù)器端發(fā)送的消息時(shí),觸發(fā)客戶(hù)端socket端口對(duì)象的message事件.

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

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

msg是服務(wù)器端發(fā)送的數(shù)據(jù);

也可以使用客戶(hù)端的socket對(duì)象的send()方法向服務(wù)器端發(fā)送數(shù)據(jù).

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

socket.send(msg);

當(dāng)服務(wù)器端斷開(kāi)連接時(shí),觸發(fā)客戶(hù)端socket端口對(duì)象的disconnect事件,

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

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

這個(gè)回調(diào)函數(shù)不使用任何參數(shù).

注意:

客戶(hù)端的消息機(jī)制與服務(wù)器端的消息處理機(jī)制是完全一致的.因?yàn)閟ocket.io確??蛻?hù)端與服務(wù)器端共享相同的API.

運(yùn)行后的結(jié)果:

當(dāng)關(guān)閉瀏覽器是,就斷開(kāi)了與服務(wù)器的連接,此時(shí)服務(wù)器端觸發(fā)disconnect事件,客戶(hù)端斷開(kāi)連接.

相關(guān)文章

  • Node.js使用supervisor進(jìn)行開(kāi)發(fā)中調(diào)試的方法

    Node.js使用supervisor進(jìn)行開(kāi)發(fā)中調(diào)試的方法

    今天小編就為大家分享一篇關(guān)于Node.js使用supervisor進(jìn)行開(kāi)發(fā)中調(diào)試的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Node.js處理HTTP請(qǐng)求的示例代碼

    Node.js處理HTTP請(qǐng)求的示例代碼

    Node.js是一個(gè)基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境,它使得JavaScript可以脫離瀏覽器在服務(wù)器端運(yùn)行,Node.js的非阻塞I/O模型和事件驅(qū)動(dòng)特性使其在處理HTTP請(qǐng)求時(shí)表現(xiàn)出色,本文將探討Node.js如何處理HTTP請(qǐng)求,并提供示例代碼,需要的朋友可以參考下
    2024-09-09
  • windows離線環(huán)境安裝node-sass全過(guò)程

    windows離線環(huán)境安裝node-sass全過(guò)程

    文章介紹了如何在Windows系統(tǒng)上安裝和配置node-sass,并提供了一個(gè)詳細(xì)的步驟指南,首先,通過(guò)命令行查看支持版本;然后,下載對(duì)應(yīng)版本的node-sass安裝包;接著,在npm配置文件中增加SASS_BINARY_PATH路徑配置;最后,執(zhí)行npmi命令完成安裝
    2024-12-12
  • Node.JS 版本管理工具Fnm安裝及配置

    Node.JS 版本管理工具Fnm安裝及配置

    本文主要介紹了Node.js版本管理工具Fnm的安裝和配置過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Nodejs中讀取中文文件編碼問(wèn)題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例

    Nodejs中讀取中文文件編碼問(wèn)題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例

    這篇文章主要介紹了Nodejs中讀取中文文件編碼問(wèn)題、發(fā)送郵件和定時(shí)任務(wù)實(shí)例,本文使用了3個(gè)模塊來(lái)解決這3個(gè)需求,并給出了代碼操作實(shí)例,需要的朋友可以參考下
    2015-01-01
  • 詳解一個(gè)基于套接字實(shí)現(xiàn)長(zhǎng)連接的express

    詳解一個(gè)基于套接字實(shí)現(xiàn)長(zhǎng)連接的express

    這篇文章主要介紹了詳解一個(gè)基于套接字實(shí)現(xiàn)長(zhǎng)連接的express,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • node.js安裝及環(huán)境配置超詳細(xì)步驟講解(Windows系統(tǒng)安裝包方式)

    node.js安裝及環(huán)境配置超詳細(xì)步驟講解(Windows系統(tǒng)安裝包方式)

    這篇文章主要介紹了node.js安裝及環(huán)境配置超詳細(xì)教程(Windows系統(tǒng)安裝包方式),本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 詳解node nvm進(jìn)行node多版本管理

    詳解node nvm進(jìn)行node多版本管理

    這篇文章主要介紹了詳解node nvm進(jìn)行node多版本管理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • 使用Node.js實(shí)現(xiàn)一個(gè)文章生成器

    使用Node.js實(shí)現(xiàn)一個(gè)文章生成器

    本文將從零開(kāi)始,講解如何使用Node.js來(lái)實(shí)現(xiàn)一個(gè)文章生成器,node里面有很多優(yōu)秀的模塊,現(xiàn)在我們就借助node的fs模塊來(lái)操控文本,來(lái)實(shí)現(xiàn)我們想要的效果,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-07-07
  • 用Node.js遍歷多級(jí)目錄處理文件的代碼詳解

    用Node.js遍歷多級(jí)目錄處理文件的代碼詳解

    在日常開(kāi)發(fā)中,處理大量的文件操作是一個(gè)常見(jiàn)的需求,特別是在圖像處理和存檔管理領(lǐng)域,本文給大家介紹了如何用Node.js遍歷多級(jí)目錄處理文件,文章給出了主要步驟和完整代碼,需要的朋友可以參考下
    2024-06-06

最新評(píng)論

通化市| 怀安县| 玉龙| 望谟县| 盈江县| 同心县| 满城县| 沧州市| 洛浦县| 若尔盖县| 读书| 麻阳| 英吉沙县| 融水| 高要市| 平舆县| 亳州市| 白山市| 张掖市| 班戈县| 嘉善县| 曲沃县| 乐昌市| 阳高县| 三台县| 安庆市| 元氏县| 东莞市| 农安县| 阿克苏市| 景德镇市| 平顺县| 新邵县| 穆棱市| 德庆县| 河津市| 南乐县| 馆陶县| 郎溪县| 凤凰县| 从江县|