欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NodeJs 實現(xiàn)簡單WebSocket即時通訊的示例代碼

 更新時間:2019年08月05日 15:07:47   作者:playboy5566  
這篇文章主要介紹了NodeJs 實現(xiàn)簡單WebSocket即時通訊的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

服務(wù)器的實現(xiàn)很簡單,先裝一個nodeJs的模塊,叫nodejs-websocket , 直接在nodeJs命令行中敲入:npm install nodejs-websocket回車就可以安裝好了,然后就可以開始建立服務(wù)器了,因為有了nodejs-websocket模塊,所以很多工作都不用我們自己做,直接調(diào)用別人封裝好的方法就行了:

服務(wù)端代碼

根據(jù)客戶端傳來的消息判斷哪個是game1,哪個是game2,保存connection對象。

var ws = require("nodejs-websocket");
console.log("開始建立連接...")

var game1 = null,game2 = null , game1Ready = false , game2Ready = false;
var server = ws.createServer(function(conn){
  conn.on("text", function (str) {
    console.log("收到的信息為:"+str)
    if(str==="game1"){
      game1 = conn;
      game1Ready = true;
      conn.sendText("success");
    }
    if(str==="game2"){
      game2 = conn;
      game2Ready = true;
    }

    if(game1Ready&&game2Ready){
      game2.sendText(str);
    }

    conn.sendText(str)
  })
  conn.on("close", function (code, reason) {
    console.log("關(guān)閉連接")
  });
  conn.on("error", function (code, reason) {
    console.log("異常關(guān)閉")
  });
}).listen(8001)
console.log("WebSocket建立完畢")

【game1代碼】:通過點擊獲取三個框的內(nèi)容,傳到服務(wù)器

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .kuang{text-align: center;margin-top:200px;}
    #mess{text-align: center}
    .value{width: 200px;height:200px;border:1px solid;text-align: center;line-height: 200px;display: inline-block;}
  </style>
</head>
<body>
  <div id="mess">正在連接...</div>
  <div class="kuang">
    <div class="value" id="value1">小明小明</div>
    <div class="value" id="value2">大胸大胸</div>
    <div class="value" id="value3">小張小張</div>
  </div>

  <script>
    var mess = document.getElementById("mess");
    if(window.WebSocket){
      var ws = new WebSocket('ws://192.168.17.80:8001');

      ws.onopen = function(e){
        console.log("連接服務(wù)器成功");
        ws.send("game1");
      }
      ws.onclose = function(e){
        console.log("服務(wù)器關(guān)閉");
      }
      ws.onerror = function(){
        console.log("連接出錯");
      }

      ws.onmessage = function(e){
        mess.innerHTML = "連接成功"
        document.querySelector(".kuang").onclick = function(e){
          var time = new Date();
          ws.send(time + " game1點擊了“" + e.target.innerHTML+"”");
        }
      }
    }
  </script>
</body>
</html>

【game2代碼】:獲取服務(wù)推送來的消息,并且顯示

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .kuang{text-align: center;margin-top:200px;}
    #mess{text-align: center}
  </style>
</head>
<body>
  <div id="mess"></div>

  <script>
    var mess = document.getElementById("mess");
    if(window.WebSocket){
      var ws = new WebSocket('ws://192.168.17.80:8001');

      ws.onopen = function(e){
        console.log("連接服務(wù)器成功");
        ws.send("game2");
      }
      ws.onclose = function(e){
        console.log("服務(wù)器關(guān)閉");
      }
      ws.onerror = function(){
        console.log("連接出錯");
      }

      ws.onmessage = function(e){
        var time = new Date();
        mess.innerHTML+=time+"的消息:"+e.data+"<br>"
      }
    }
  </script>
</body>
</html>

運行截圖:


以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Node工程的依賴包管理方式

    Node工程的依賴包管理方式

    在前端工程化中,JavaScript 依賴包管理是非常重要的一環(huán)。依賴包通常是項目所依賴的第三方庫、工具和框架等資源,它們能夠幫助我們減少重復(fù)開發(fā)、提高效率并且確保項目可以正確的運行。本文詳細介紹了Node工程的依賴包管理方式,感興趣的同學(xué)可以參考一下
    2023-04-04
  • Node.js編寫組件的三種實現(xiàn)方式

    Node.js編寫組件的三種實現(xiàn)方式

    這篇文章主要介紹了Node.js編寫組件的三種實現(xiàn)方式,包括純js實現(xiàn)、v8 API實現(xiàn)(同步&異步)、借助swig框架實現(xiàn),感興趣的小伙伴們可以參考一下
    2016-02-02
  • Node.js利用console輸出日志文件的方法示例

    Node.js利用console輸出日志文件的方法示例

    本篇文章主要介紹了Node.js利用console輸出日志文件的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Nodejs中session的簡單使用及通過session實現(xiàn)身份驗證的方法

    Nodejs中session的簡單使用及通過session實現(xiàn)身份驗證的方法

    session的本質(zhì)使用cookie來實現(xiàn)。本文給大家介紹Nodejs中session的簡單使用及通過session實現(xiàn)身份驗證的方法,對node.js session相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-02-02
  • Nodejs中自定義事件實例

    Nodejs中自定義事件實例

    這篇文章主要介紹了Nodejs中自定義事件實例,比較簡單的一個例子,需要的朋友可以參考下
    2014-06-06
  • Node.js中JavaScript操作MySQL的常用方法整理

    Node.js中JavaScript操作MySQL的常用方法整理

    這篇文章主要介紹了Node.js中JavaScript操作MySQL的常用方法整理,包括作者對使用MySQL模塊連接池時錯誤解決的一個記錄,需要的朋友可以參考下
    2016-03-03
  • NPM全局安裝與本地安裝的區(qū)別詳析

    NPM全局安裝與本地安裝的區(qū)別詳析

    NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,下面這篇文章主要給大家介紹了關(guān)于NPM全局安裝與本地安裝區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • nodejs實現(xiàn)郵箱發(fā)送驗證碼功能

    nodejs實現(xiàn)郵箱發(fā)送驗證碼功能

    開發(fā)個人網(wǎng)站時,注冊頁面可以使用郵箱驗證,于是記錄一下如何用nodejs/express服務(wù)器實現(xiàn)郵箱發(fā)送驗證碼,不僅可以在郵箱注冊時使用,還可以拓展用于各種安全驗證,本文給大家介紹了使用nodejs實現(xiàn)郵箱發(fā)送驗證碼功能,需要的朋友可以參考下
    2024-07-07
  • 如何使用Node.js判斷png圖片是否存在透明像素

    如何使用Node.js判斷png圖片是否存在透明像素

    這篇文章主要給大家介紹了關(guān)于如何使用Node.js判斷png圖片是否存在透明像素的相關(guān)資料,文中將實現(xiàn)的原理以及代碼介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • 深入淺析Node.js 事件循環(huán)

    深入淺析Node.js 事件循環(huán)

    Node.js 是單進程單線程應(yīng)用程序,但是通過事件和回調(diào)支持并發(fā),所以性能非常高,本文給大家介紹nodejs事件循環(huán)相關(guān)知識,對此感興趣的朋友快來學(xué)習(xí)吧
    2015-12-12

最新評論