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

NodeJs實現(xiàn)跨域WebSocket即時通訊加強版

 更新時間:2023年11月09日 09:39:08   作者:playboy5566  
這篇文章主要為大家介紹了NodeJs實現(xiàn)跨域WebSocket即時通訊加強版示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Socket.io

原生WebSocket API使用起來不太方便,我們使用Socket.io,它很好地封裝了webSocket接口,提供了更簡單、靈活的接口,也對不支持webSocket的瀏覽器提供了向下兼容。

  • 服務(wù)端代碼
  • 根據(jù)不同客戶端傳來的消息存儲一下 不同的對象
  • 需要安裝 npm i socket.io --save
  • 下載 socket.io.js

nodejs 代碼

const socket = require("socket.io");
const http = require('http');
// 創(chuàng)建服務(wù)
const server = http.createServer((req,res)=>{
    // 允許所有跨域請求
    res.setHeader('Access-Control-Allow-Origin', '*');
    req.writeHead(200,{'Content-Type':'text/html'})
    res.end('')
}).listen(8001)
let pad = null,pc = null , padReady = false , pcReady = false;
// 連接socket.io
socket.listen(server).on('connection',(conn)=>{
    conn.on('message',(str)=>{
        if(str==="Pad"){
            pad = conn;
            padReady = true;
            conn.send('連接成功');
        }
        if(str==="PC"){
            pc = conn;
            pcReady = true;
        }
        if(padReady&&pcReady){
            if(str==='PC') str='我是PC界面'
            pc.send(str);
        }
    })
    conn.on("disconnection",(code, reason) => {
        console.log("關(guān)閉連接")
    });
})

pad.html 代碼

<!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">aaaaaaa</div>
        <div class="value" id="value2">bbbbbbb</div>
        <div class="value" id="value3">ccccccc</div>
    </div>
    <script src="./js/socket.io.js"></script>
    <script>
        // 跨域地址
        const socket = io('192.168.1.115:8001')
        socket.on('connect', () => {
            // 連接成功
            socket.send('Pad')
            // 監(jiān)聽連接
            socket.on('message', (msg) => {
                document.getElementById('mess').innerHTML=msg
                // console.log(msg)
            })
            // 關(guān)閉連接
            socket.on('disconnect', () => {
            })
        })
        document.querySelector(".kuang").onclick = (e)=> {
           socket.send(e.target.innerHTML);
        }
    </script>
</body>
</html>

pc.html 代碼

<!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 src="./js/socket.io.js"></script>
    <script>
        var mess = document.getElementById("mess");
        // 跨域地址
        // TODO: 這里注意一下 不能寫127.0.0.1 或者localhost 不然其他客戶端訪問不到
        const socket = io('192.168.1.115:8001')
        socket.on('connect', () => {
            // 連接成功
            socket.send('PC')
            // 監(jiān)聽連接
            socket.on('message', (msg) => {
                mess.innerHTML = msg
                // console.log(msg)
            })
            // 關(guān)閉連接
            socket.on('disconnect', () => {
            })
        })
    </script>
</body>
</html>

以上就是NodeJs 【加強版】實現(xiàn)跨域WebSocket 即時通訊的詳細內(nèi)容,更多關(guān)于NodeJs跨域WebSocket即時通訊的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 運行Node.js的IIS擴展iisnode安裝配置筆記

    運行Node.js的IIS擴展iisnode安裝配置筆記

    這篇文章主要介紹了運行Node.js的IIS擴展iisnode安裝配置筆記,iisnode的擴展可以把Node.js程序托管到IIS,托管之后也意味著可以使用IIS里面的各種功能,需要的朋友可以參考下
    2015-03-03
  • 參考EventEmitter實現(xiàn)完整訂閱發(fā)布功能函數(shù)

    參考EventEmitter實現(xiàn)完整訂閱發(fā)布功能函數(shù)

    這篇文章主要為大家介紹了參考EventEmitter實現(xiàn)完整訂閱發(fā)布功能函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Node實戰(zhàn)之不同環(huán)境下配置文件使用教程

    Node實戰(zhàn)之不同環(huán)境下配置文件使用教程

    這篇文章主要給大家介紹了關(guān)于Node實戰(zhàn)之不同環(huán)境下配置文件使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-01-01
  • Node使用Puppeteer監(jiān)聽并打印網(wǎng)頁的接口請求

    Node使用Puppeteer監(jiān)聽并打印網(wǎng)頁的接口請求

    Puppeteer 是一個 Node 庫,它提供了高級的 API 來通過 DevTools 協(xié)議控制 Chrome 或 Chromium,本文我們就來看看如何使用Puppeteer監(jiān)聽并打印網(wǎng)頁的接口請求吧
    2025-04-04
  • 詳解nodejs express下使用redis管理session

    詳解nodejs express下使用redis管理session

    本篇文章主要介紹了詳解nodejs express下使用redis管理session ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • nodejs子進程child_process和cluster模塊深入解析

    nodejs子進程child_process和cluster模塊深入解析

    本文從node的單線程單進程的理解觸發(fā),介紹了child_process模塊和cluster模塊,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Windows上安裝Node-RED的實現(xiàn)

    Windows上安裝Node-RED的實現(xiàn)

    Node-RED是一個用于物聯(lián)網(wǎng)編程的工具,提供了一個基于瀏覽器的編程環(huán)境和豐富的節(jié)點類型,本文就來介紹一下Windows上安裝Node-RED的實現(xiàn),感興趣的可以了解一下
    2025-02-02
  • 防止Node.js中錯誤導致進程阻塞的辦法

    防止Node.js中錯誤導致進程阻塞的辦法

    Node.js我們用到非常的多了,如果我們開發(fā)不當可能因錯誤導致進程阻塞問題,對于進程阻塞問題一直是個頭痛的事情,今天我們一起來看一篇關(guān)于Node.js防止錯誤導致的進程阻塞示例,下面一起來看看。
    2016-08-08
  • 解析NodeJs的調(diào)試方法

    解析NodeJs的調(diào)試方法

    本文主要介紹了NodeJs調(diào)試的步驟,以及實例方法,具有一定的參考作用,需要的朋友可以看下
    2016-12-12
  • 詳解Nodejs的timers模塊

    詳解Nodejs的timers模塊

    本篇文章主要介紹了Nodejs的timers模塊,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12

最新評論