国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Node.js+html5實現(xiàn)WebSocket服務(wù)示例

這篇具有很好參考價值的文章主要介紹了Node.js+html5實現(xiàn)WebSocket服務(wù)示例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

{
  "scripts": {
    "dev": "node ws.js",
    "ncc": "ncc build ./ws.js -m -o ./dist/"
  },
  "dependencies": {
    "@vercel/ncc": "^0.36.1",
    "ws": "^8.13.0"
  }
}

const http = require("http");
const fs = require("fs");
const { WebSocket, WebSocketServer } = require("ws");

var fun = function (request, response) {
  var stream = fs.createReadStream("./ws.html", {
    flag: "r",
    encoding: "utf8",
  });
  stream.pipe(response);
};

var server = http.createServer(fun).listen(9091);
var wsServer = new WebSocketServer({ server: server });

wsServer.broadcast = (msg) => {
  wsServer.clients.forEach((client) => {
    if (client.readyState == WebSocket.OPEN) {
      client.send("【廣播】" + msg);
      console.log(666.789, wsServer.clients);
    }
  });
};

wsServer.on("connection", (ws, req) => {
  console.log(666.1001, ws, req);

  ws.on("message", (msg) => {
    const msgObj = JSON.parse(msg.toString());
    if (msgObj?.type) {
      if (msgObj.type === "login") {
        ws.userinfo = msgObj.userinfo;
      }
      if (msgObj?.data) {
        const msgStr = ws.userinfo.username + "說:" + msgObj.data.msg;
        console.log(666.10021, msgObj);
        ws.send("服務(wù)器[私發(fā)]:" + msgStr);
        wsServer.broadcast(msgStr);
      }
    }
  });

  ws.on("close", () => {
    console.log(666.1005, "ws is closed!");
  });
});


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Node.js+html5實現(xiàn)WebSocket服務(wù)示例</title>
  </head>
  <body>
    <div id="show"></div>
    <div>
      <input id="message" type="text" style="width: 200px" />
      <button type="button" id="send" onclick="sendMessage();">Send!</button>
      <button type="button" id="send" onclick="exit();">exit</button>
    </div>
    <script>
      var ws = new WebSocket("ws://localhost:9091");

      ws.onopen = (e) => {
        console.log("Connection to server opened" + ws.readyState);

        document.getElementById("show").innerHTML =
          "連接狀態(tài):" + ws.readyState + "</br>";

        ws.send(
          JSON.stringify({
            type: "login",
            userinfo: { username: 'asai' + Date.now(), password: "123456" },
          })
        );

        ws.onmessage = (evt) => {
          console.log(666.10002, evt);
          document.getElementById("show").innerHTML += evt.data + "</br>";
        };

        ws.onclose = (evt) => {
          console.log("WebSocketClosed!");
          console.log(evt);
        };
      };

      function sendMessage() {
        var msg = document.getElementById("message").value;
        var msgObj = { type: "message", data: { msg: msg } };
        ws.send(JSON.stringify(msgObj));
        document.getElementById("message").value = "";
      }

      function exit() {
        ws.close();
        console.log("退出啦");
      }
    </script>
  </body>
</html>


文章來源地址http://www.zghlxwxcb.cn/news/detail-672623.html

到了這里,關(guān)于Node.js+html5實現(xiàn)WebSocket服務(wù)示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 如何使用websocket+node.js實現(xiàn)pc后臺與小程序端實時通信

    如何使用websocket+node.js實現(xiàn)pc后臺與小程序端實時通信

    實現(xiàn)功能:實現(xiàn)pc后臺與小程序端互發(fā)通信能夠?qū)崟r檢測到 1.安裝ws依賴 2.創(chuàng)建index.js 3.打開終端,啟動服務(wù) 這里是手動點擊連接按鈕,發(fā)起的websocket連接,可自行更改到其他合適的地方連接websocket 1.創(chuàng)建兩個按鈕,連接按鈕,發(fā)送按鈕 2.定義事件,連接ws

    2024年02月03日
    瀏覽(26)
  • 用 Node.js 手寫 WebSocket 協(xié)議

    用 Node.js 手寫 WebSocket 協(xié)議

    目錄 引言 從 http 到 websocekt 的切換 Sec-WebSocket-Key 與 Sec-WebSocket-Accept 全新的二進制協(xié)議 自己實現(xiàn)一個 websocket 服務(wù)器 按照協(xié)議格式解析收到的Buffer 取出opcode 取出MASK與payload長度 根據(jù)mask key讀取數(shù)據(jù) 根據(jù)類型處理數(shù)據(jù) frame 幀 數(shù)據(jù)的發(fā)送 完整代碼 總結(jié) ????????我們知道,

    2024年02月16日
    瀏覽(19)
  • webSocket 聊天室 node.js 版

    webSocket 聊天室 node.js 版

    全局安裝vue腳手架? npm install @vue/cli -g 創(chuàng)建 vue3 + ts 腳手架? vue create vue3-chatroom src 同級目錄下建 server: ? 核心代碼: 完整代碼:

    2024年02月12日
    瀏覽(21)
  • 使用node簡單搭建websocket服務(wù)器

    我們都知道,http協(xié)議通信只能由客戶端發(fā)起,然后服務(wù)端再做出響應(yīng);但是websocket協(xié)議最大的特點是服務(wù)端可以主動向客戶端推送消息,客戶端也可以主動向服務(wù)器發(fā)送消息 往常實現(xiàn)雙向通信的方法主要是 輪詢, 客戶端通過定時器,每隔一段時間就會主動發(fā)送請求給服務(wù)器

    2024年02月05日
    瀏覽(26)
  • 使用node實現(xiàn)websocket

    使用node實現(xiàn)websocket

    websocket 代表了 Web 應(yīng)用程序通信方式的根本轉(zhuǎn)變。不同于傳統(tǒng)的 HTTP 請求響應(yīng)周期,即客戶端從服務(wù)器請求數(shù)據(jù)并等待響應(yīng), websocket 在客戶端和服務(wù)器之間建立一個持久的全雙工連接。這意味著一旦建立了 websocket ,數(shù)據(jù)可以在任何時候雙向流動,而不需要重復請求。 Web

    2024年02月08日
    瀏覽(13)
  • HTML5 WebSocket介紹與基本使用(解析服務(wù)端返回的二進制數(shù)據(jù))

    HTML5 WebSocket介紹與基本使用(解析服務(wù)端返回的二進制數(shù)據(jù))

    WebSocket 是 HTML5 開始提供的一種在單個 TCP 連接上進行全雙工通訊的協(xié)議。 WebSocket 使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡單,允許服務(wù)端主動向客戶端推送數(shù)據(jù)。在 WebSocket API 中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進行

    2024年02月15日
    瀏覽(37)
  • 【websocket】Node+Vue2+WebSocket實現(xiàn)前后端通訊

    【websocket】Node+Vue2+WebSocket實現(xiàn)前后端通訊

    WebSocket是一個長連接,客戶端可以給服務(wù)端發(fā)送消息,服務(wù)端也可以給客戶端發(fā)送消息,是 全雙工通信。 平時的前后端分離項目,是前端請求結(jié)果獲取后端服務(wù)器數(shù)據(jù),從而渲染到頁面,服務(wù)端無法主動向客戶端發(fā)起消息,某些需求場景下,一旦客戶端 需要知道服務(wù)端的頻

    2024年02月02日
    瀏覽(22)
  • websocket+node實現(xiàn)直播(弱雞版)

    websocket+node實現(xiàn)直播(弱雞版)

    心血歷程 這部分主要是寫在寫這些的時候遇到的問題以及換思路的過程,可以之間看正文 在之前我也寫過直播功能,并且與websocket相結(jié)合實現(xiàn)了直播彈幕。只不過直播是使用的騰訊云的,而不是手寫的直播推流拉流,這次又有一個新的項目,和直播息息相關(guān)(直播自習平臺

    2024年02月14日
    瀏覽(15)
  • nodejs-websocket之簡單利用node搭建服務(wù)器

    一、 需要安裝 node.js 通過npm 安裝 webSocket包 npm install websocket 二、編寫服務(wù)端 這段代碼是一個使用Node.js的websocket庫(nodejs-websocket)創(chuàng)建的服務(wù)器,監(jiān)聽端口3000。以下是對代碼的簡要解釋: 引入所需的websocket模塊: const ws = require(\\\'nodejs-websocket\\\') 設(shè)置服務(wù)器端口號: const PORT =

    2024年02月07日
    瀏覽(30)
  • websocket實現(xiàn)聊天室(vue2 + node)

    websocket實現(xiàn)聊天室(vue2 + node)

    需求分析如圖: 搭建的項目結(jié)構(gòu)如圖: 前端步驟: vue create socket_demo (創(chuàng)建項目) views下面建立Home , Login組件 路由里面配置路徑 Home組件內(nèi)部開啟websocket連接 前端相關(guān)組件代碼: Login組件 Home組件 router/index.js 后端步驟: 在項目外層創(chuàng)建server文件夾(src目錄同級) npm init -y創(chuàng)建

    2024年01月22日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包