<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        koa socket即時通訊的示例代碼

        來源:懂視網 責編:小采 時間:2020-11-27 22:08:10
        文檔

        koa socket即時通訊的示例代碼

        koa socket即時通訊的示例代碼:前言 http的特點是一問一答,而即時通訊是需要雙向通信的,這樣以前的即時通信只能使用輪詢的方式通過周期性的ajax請求獲取數據,直到websocket出現,就完美實現了雙向通信 一 即時通訊方式簡介 段輪詢 前臺使用setInterval進行定時請求后臺,這樣無疑
        推薦度:
        導讀koa socket即時通訊的示例代碼:前言 http的特點是一問一答,而即時通訊是需要雙向通信的,這樣以前的即時通信只能使用輪詢的方式通過周期性的ajax請求獲取數據,直到websocket出現,就完美實現了雙向通信 一 即時通訊方式簡介 段輪詢 前臺使用setInterval進行定時請求后臺,這樣無疑

        前言

        http的特點是一問一答,而即時通訊是需要雙向通信的,這樣以前的即時通信只能使用輪詢的方式通過周期性的ajax請求獲取數據,直到websocket出現,就完美實現了雙向通信

        一 即時通訊方式簡介

        段輪詢

        前臺使用setInterval進行定時請求后臺,這樣無疑非常浪費性能

        長輪詢和長連接(html5的EventSource)

        客服端連接一次,服務端不斷開連接,服務端接收到新消息就發送給前臺,客服端和服務端保持一直連接,缺點是只有服務端向客服端輸出

        websocket

        websocket不再是走http協議,而是升級為websocket協議,說到底就是走應用層協議(tcp),實現雙向通信,缺點是兼容性問題(ie11)

        socket.io

        上面的方式都存在一定問題,自然就有人封裝一套完美的解決方案,socket.io就是集合了上面幾種方案的另一種解決方案

        二 即時通信實現

        客服端

        引入包:<script src="https://cdn.socket.io/socket.io-1.2.1.js";></script>

        服務端和客服端通過on和emit進行交互

        1. emit表示發送,事件名自定義,另一端用on進行接收
        2. on表示接受,類似jq綁定事件,事件名對應emit事件名
        3. connect,disconnect是連接和斷開事件
         // 建立連接
         var socket= io('http://localhost:80')
         // on表示接收
         // emit表示發送
         socket.on('connect', function () {
         console.log('連接上了')
         // 登錄,同步前后端信息
         // 請求后端login接口,寫入socketid
         socket.emit('login', {
         // 身份標識,可以是時間戳或者唯一id,最要用來回去socketid進行私聊
         id: username
         })
         })
        
        
         // 發送消息,這里可以用發送事件進行消息發送
         socket.emit('sendMsg', {
         newAccount: 'xxxxxx'
         })
         
         // 接收消息
         socket.on('msg1', function (data) {
         // 可以對數據進行渲染
         console.log(data)
         
         })
         socket.on('allmessage', function (data) {
         // 接收所有人消息
         console.log(data);
        
         })
         
         // 表示連接斷開了
         socket.on('disconnect', function () {
         console.log('聊天服務器斷開了')
         })
        

        服務端(koa+koa-socket)

        安裝koa-socket

        npm i koa2 koa-socket -S
         const IO = require('koa-socket')
         const Koa = require('koa2')
         const io = new IO()
         
         const app = new Koa()
         
         // 將socket和app關聯
         io.attach(app)
         // 和客服端進行連接
         io.on('connection', (context) => {
         console.log('連接上了')
         })
         // 接收消息
         io.on('sendMsg', function (context) {
         //console.log(context.data)
         // 向客服端實時發送消息
         io.broadcast('msg1', '我是服務器來的')
        
         // 廣播,所有人消息
         io.broadcast('allmessage', context.data.newAccount)
         })
        
         // 處理登陸同步信息
         io.on('login', context => {
         let id = context.data.id;
         console.log(context);
         });

        總結

        上面就是koa-socket使用的簡單介紹,只實現了簡單的消息推送和接收,后面還有私聊和群發,其原理是獲取到每個用戶的socketid,發送消息時對應發送,后面再進行更新

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        koa socket即時通訊的示例代碼

        koa socket即時通訊的示例代碼:前言 http的特點是一問一答,而即時通訊是需要雙向通信的,這樣以前的即時通信只能使用輪詢的方式通過周期性的ajax請求獲取數據,直到websocket出現,就完美實現了雙向通信 一 即時通訊方式簡介 段輪詢 前臺使用setInterval進行定時請求后臺,這樣無疑
        推薦度:
        標簽: 代碼 so 的例子
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产免费久久久久久无码| 在线亚洲v日韩v| 国产午夜成人免费看片无遮挡| 国产成人免费a在线视频色戒| 亚洲中文字幕久久精品无码A| 在线观看www日本免费网站| 日本久久久久亚洲中字幕| 国产线视频精品免费观看视频| 亚洲中文字幕久久精品无码喷水 | 亚洲免费在线观看视频| 亚洲精品福利网站| **毛片免费观看久久精品| 亚洲欧洲日韩不卡| 国产成人yy免费视频| 亚洲精品无码少妇30P| 在线观看亚洲免费视频| 美女黄色毛片免费看| 亚洲熟妇少妇任你躁在线观看无码| 黄色一级免费网站| 国产V亚洲V天堂A无码| 曰批全过程免费视频网址| 亚洲午夜精品一区二区麻豆| 国产极品美女高潮抽搐免费网站| 特黄特色大片免费| 亚洲国产女人aaa毛片在线| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 | 国产精品亚洲аv无码播放| 无码日韩精品一区二区免费暖暖| 亚洲国产精品人久久电影| 免费特级黄毛片在线成人观看| 精品国产日韩亚洲一区在线| 久久精品国产69国产精品亚洲| 亚洲香蕉免费有线视频| 亚洲精品无码久久久久久| 久久夜色精品国产亚洲av| 永久在线免费观看| 偷自拍亚洲视频在线观看| 久久丫精品国产亚洲av不卡 | 亚州免费一级毛片| 豆国产96在线|亚洲| 国产A在亚洲线播放|