国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

感謝有“你”-------socket.io

stackvoid / 1291人閱讀

摘要:首先將的包拷貝到你的項(xiàng)目文件下,并在部分使用標(biāo)簽將其添加進(jìn)去使用專業(yè)的函數(shù)創(chuàng)建一個端點(diǎn)當(dāng)在消息框輸入消息并點(diǎn)擊發(fā)送按鈕時,客戶端就將向服務(wù)器端發(fā)送輸入的消息,消息類型是。

我此前曾發(fā)過一遍文章有關(guān)于如何利用node.js+websocket搭建一個簡單的多人聊天室有興趣的朋友可以關(guān)注我的技術(shù)客棧---濤濤技術(shù)客棧。今天學(xué)習(xí)了websocket的一個框架---socket.io后瞬間感覺神清氣爽,頓感從無盡的回調(diào)函數(shù)中解脫出來,今天我將繼續(xù)就多人聊天室這個demo來和大家分享一下如何利用socket.io來創(chuàng)建它。

安裝socket.io所需的包

眾所周知,node.js采用了包結(jié)構(gòu)進(jìn)行管理,所以我們在使用一些模塊(modules)時必須使用npm(install package managment,即安裝包管理工具)安裝socket.io,安裝時仍需安裝在你的node.js中npm的node_modules目錄下,例如在我的電腦中的安裝路徑是這樣的:D:Node.jsnode_modulesnpmnode_modules

最后只有npm install -g socket.io安裝socket.io(必須使用-g進(jìn)行全局安裝),接下來進(jìn)行項(xiàng)目的編寫。

創(chuàng)建客戶端

客戶端如下:




    
    
    
    websocket

【1】



    

ChatRoom



說明:代碼中重要的部分我都進(jìn)行了加粗并進(jìn)行編號,下面我們來分析這些重要的代碼。

首先將socket.io的包拷貝到你的項(xiàng)目文件下,并在head部分使用script標(biāo)簽將其添加進(jìn)去

使用socket.io專業(yè)的函數(shù)創(chuàng)建一個websocket端點(diǎn)

當(dāng)在消息框輸入消息并點(diǎn)擊發(fā)送按鈕時,客戶端就將向服務(wù)器端發(fā)送輸入的消息,消息類型是message。

當(dāng)有新的用戶進(jìn)入聊天室時,服務(wù)器就會向全部的客戶端廣播這樣一條消息:userxx comes in

當(dāng)任意一個客戶端向服務(wù)器發(fā)送消息時,服務(wù)器就會將這條消息廣播給全部的客戶端。

當(dāng)有任一客戶端離開時,服務(wù)器就會向全部客戶端廣播這樣一條消息:userxx left

創(chuàng)建服務(wù)器端

服務(wù)器端代碼:

【1】 var app = require("http").createServer()
【2】 var io = require("socket.io")(app)

var PORT = 3000
var clientCount = 0

【3】 app.listen(PORT)
【4】 io.on("connection",function(socket){

    clientCount++
    socket.nickname = "user"+clientCount

【5】 io.emit("enter",socket.nickname+" comes in")
【6】 socket.on("message",function(str){

         **io.emit("message",socket.nickname+" say:"+str)**
    })

【7】 socket.on("disconnect",function(){

        io.emit("left",socket.nickname+" left")
    })
}) 
console.log("websocket listening on port:"+PORT)

很顯然使用了socket.io來創(chuàng)建服務(wù)器端非常簡潔、方便,大家是不是感覺這代碼看起來就很清爽呀。代碼中的重要部分我都進(jìn)行了加粗標(biāo)記及編號處理,下面我跟大家分享一下重要的代碼。

首先我們需要一個綁定使用http協(xié)議的變量:app

接下來我們還需要創(chuàng)建一個使用socket.io這個modules的變量并且綁定http變量

這個綁定了http的變量也需要監(jiān)聽服務(wù)器端的端口號

當(dāng)有一個客戶端與服務(wù)器端進(jìn)行連接時就調(diào)用回調(diào)函數(shù)

接下來當(dāng)觸發(fā)“enter”事件時服務(wù)器端向客戶端廣播這樣一條消息:userxx comes in

當(dāng)有客戶端向服務(wù)器端發(fā)送消息時就會觸發(fā)message事件,這時服務(wù)器端向全部客戶端廣播該客戶端向服務(wù)器端發(fā)送的消息。

當(dāng)有客戶端關(guān)閉時socket.io就會調(diào)用自身的disconnect事件,并且向全部客戶端廣播這樣一條消息,userxx left。

以上就是關(guān)于我分享使用socket.io來創(chuàng)建一個簡單的多人聊天室的一個小demo,以為大家積極評論。最后附上項(xiàng)目運(yùn)行的結(jié)果截圖及源碼下載地址。



項(xiàng)目源碼地址是:
鏈接:http://pan.baidu.com/s/1qXVhYuo 密碼:2x2c

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91917.html

相關(guān)文章

  • 感謝”-------socket.io

    摘要:首先將的包拷貝到你的項(xiàng)目文件下,并在部分使用標(biāo)簽將其添加進(jìn)去使用專業(yè)的函數(shù)創(chuàng)建一個端點(diǎn)當(dāng)在消息框輸入消息并點(diǎn)擊發(fā)送按鈕時,客戶端就將向服務(wù)器端發(fā)送輸入的消息,消息類型是。 我此前曾發(fā)過一遍文章有關(guān)于如何利用node.js+websocket搭建一個簡單的多人聊天室有興趣的朋友可以關(guān)注我的技術(shù)客棧---濤濤技術(shù)客棧。今天學(xué)習(xí)了websocket的一個框架---socket.io后瞬間感覺...

    FuisonDesign 評論0 收藏0
  • 基于Socket.IO實(shí)現(xiàn)Android聊天功能

    摘要:免費(fèi)全網(wǎng)獨(dú)家這是一份非常值得珍藏的知識體系一簡述是一個完全由實(shí)現(xiàn)基于支持的協(xié)議用于實(shí)時通信跨平臺的開源框架,它包括了客戶端的和服務(wù)器端的?;趯?shí)現(xiàn)聊天功能最后,感謝你的到來,恭喜你,堅(jiān)持到了最后,該文和源碼若有不當(dāng)之處,請予以斧正。 【免費(fèi)】全網(wǎng)獨(dú)家:這是一份非常值得珍藏的Android知識體系?。?! 一、簡述 Socket.IO是一個完全由JavaScript實(shí)現(xiàn)、基...

    voidking 評論0 收藏0
  • 關(guān)于websocket制作聊天室的的一些總結(jié)

    摘要:的總結(jié)在一個聊天室系統(tǒng)中,常常使用作為通信的主要方式。服務(wù)端對客戶端所發(fā)送的請求進(jìn)行處理登陸驗(yàn)證等操作在這里,通過來接受客戶端所傳遞的數(shù)據(jù),為相同方法名,其后跟的函數(shù)為登陸驗(yàn)證的具體操作,比如用戶驗(yàn)證是否存在。 websocket的總結(jié) 在一個聊天室系統(tǒng)中,常常使用websocket作為通信的主要方式。參考地址:https://www.jianshu.com/p/00e... 關(guān)于自...

    Ocean 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<