亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node.js之構(gòu)建WebSocket服務(wù)全過程

 更新時間:2024年09月06日 13:25:38   作者:一介白衣ing  
這篇文章主要介紹了Node.js之構(gòu)建WebSocket服務(wù)全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

WebSocket簡介

WebSocket是HTML5開始提供的一種在單個TCP 連接上進行全雙工通訊的協(xié)議。

它有如下特點:

  • 基于TCP,客戶端和服務(wù)端只建立一個TCP連接。
  • 服務(wù)端可以主動向客戶端發(fā)送消息。
  • 采用了二進制幀結(jié)構(gòu),不具備HTTP/2多路復(fù)用、優(yōu)先級等特性
  • 更輕量的協(xié)議頭,減少數(shù)據(jù)傳輸量。
  • WebSocket握手包的報文格式必須符合HTTP報文格式的規(guī)范

客戶端和服務(wù)端的簡單實現(xiàn)

服務(wù)端

服務(wù)端我們使用nodejs-websocket包來實現(xiàn)。

const ws = require("nodejs-websocket");
const server = ws.createServer(function (socket) {
  // 讀取字符串消息,事件名稱為:text
  var count = 1;
  socket.on("text", function (str) {
    // 在控制臺輸出前端傳來的消息
    console.log(str);
    //向前端回復(fù)消息

    setInterval(() => {
      socket.sendText("服務(wù)器端收到客戶端發(fā)來的消息" + str + count++);
    }, 2000);
  });

  socket.on("error", () => {
    console.log("err");
  });
});

server.listen(3000, () => {
  console.log("connected...");
});

nodejs-websocket包讀取字符串事件為text,發(fā)送字符串到客戶端方法為sendText()

還有其他方法和事件請閱讀源碼。

運行上邊的代碼,啟動服務(wù)

客戶端

const WebSocket = require("ws");
const ws = new WebSocket("ws://localhost:3000/");

ws.onopen = function () {
  setInterval(function () {
    ws.send("客戶端消息");
  }, 2000);
};

ws.onmessage = function (e) {
  console.log(e.data);
};

當(dāng)然,這段代碼也可以在瀏覽器直接運行(不需要引入ws包)。

我們使用定時器模擬消息的實時發(fā)送,來觀察客戶端和服務(wù)端消息的通訊過程。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Node.js編寫跨平臺的spawn語句詳解

    利用Node.js編寫跨平臺的spawn語句詳解

    Node.js 最強大的一點就是“跨平臺”。只要在編碼時稍微注意一下,你的代碼就通吃 Windows、Linux 和 OSX 平臺。下面這篇文章主要介紹了如何利用Node.js編寫跨平臺的spawn語句,需要的朋友可以參考借鑒。
    2017-02-02
  • 詳解nodejs微信公眾號開發(fā)——5.素材管理接口

    詳解nodejs微信公眾號開發(fā)——5.素材管理接口

    這篇文章主要介紹了詳解nodejs微信公眾號開發(fā)——5.素材管理接口,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • Node.js基礎(chǔ)模塊babel使用詳解

    Node.js基礎(chǔ)模塊babel使用詳解

    這篇文章主要介紹了Node.js基礎(chǔ)模塊babel使用詳解,babel是由一系列的組件構(gòu)成,所以我們在開發(fā)過程中,要從自行配置組件來開始使用babel的功能
    2022-06-06
  • Express 配置HTML頁面訪問的實現(xiàn)

    Express 配置HTML頁面訪問的實現(xiàn)

    這篇文章主要介紹了Express 配置HTML頁面訪問的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • node.js中的fs.readSync方法使用說明

    node.js中的fs.readSync方法使用說明

    這篇文章主要介紹了node.js中的fs.readSync方法使用說明,本文介紹了fs.readSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解npm和cnpm混用的坑

    詳解npm和cnpm混用的坑

    有沒有遇到過npm和cnpm一起用的時候出現(xiàn)奇奇怪怪的問題呢? 有沒有遇到過cnpm在支付寶小程序上面安裝包無效?本文就詳解一下npm和cnpm混用的坑,感興趣的可以了解下
    2021-07-07
  • 詳解從買域名到使用pm2部署node.js項目全過程

    詳解從買域名到使用pm2部署node.js項目全過程

    本篇文章主要介紹了詳解從買域名到使用pm2部署node.js項目全過程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • node.js中的定時器nextTick()和setImmediate()區(qū)別分析

    node.js中的定時器nextTick()和setImmediate()區(qū)別分析

    本文介紹了node.js中的定時器nextTick()和setImmediate()的區(qū)別分析,非常的不錯,這里推薦給大家。
    2014-11-11
  • nodejs讀寫json文件的簡單方法(必看)

    nodejs讀寫json文件的簡單方法(必看)

    下面小編就為大家?guī)硪黄猲odejs讀寫json文件的簡單方法(必看)。
    2017-03-03
  • Nodejs中crypto模塊的安全知識講解

    Nodejs中crypto模塊的安全知識講解

    本篇文章給大家詳細介紹了Nodejs中crypto模塊的安全知識的相關(guān)內(nèi)容,需要的朋友跟著小編一下學(xué)習(xí)參考下吧。
    2018-01-01

最新評論