天天看點

nodejs搭建簡易伺服器,模拟webSocket 背景主動推送消息給浏覽器進行接收。1。

1.先使用npm導入元件 npm i nodejs-websocket -S

2.在與node_modules同一檔案夾内建立webSocket-webSocket.js

nodejs搭建簡易伺服器,模拟webSocket 背景主動推送消息給浏覽器進行接收。1。

 在webSocket.js檔案夾内寫入:

const ws = require('nodejs-websocket');//引入websocket

const prot = 8082;

const server = ws.createServer(connection => {

    connection.on("text", function (str) {

        // connection.sendText(str);//   !傳回給用戶端的資料!

        server.connections.forEach(function (conn) {

            console.log(JSON.parse(str)) //接收到前端傳來的資料,可以使用Parse轉回對象。

            var myVar = setInterval(()=> {

                conn.sendText(str+'伺服器傳回')//傳回給所有用戶端的資料(相當于公告、通知)

            },3000)

            setTimeout(() => {

                clearInterval(myVar);//推送停止

            },10000)

        })

    })

    //監聽關閉

    connection.on("close", function (code, reason) {

        console.log("服務關閉")

    //監聽異常

    connection.on("error",(e) => {

        console.log(e,'服務異常斷開...')

}).listen(prot)

3.可另開一個檔案夾,其中建一個testOne.html檔案。

其中代碼:

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title></title>

</head>

<body>

    <div id="box">

        <div class="msg" id="msg"></div>

        <div class="bottom">

            <button type="button" id="btn">開啟伺服器推送</button>

        </div>

    </div>

</body>

<script>

    let ws = new WebSocket('ws://localhost:8082');//執行個體化websocket

    let btn = document.getElementById('btn');//推送開啟

    let msg = document.getElementById('msg');//推送資訊展示

    //發消息

    ws.onopen = function () {

        //點選按鈕發送消息

        btn.onclick = function () {

            ws.send(JSON.stringify({id1:1,id2:2})); //發送給服務端資料 需轉為字元串

        }

    };

    //ws.onmessage方法一經啟用,可被動接收由伺服器推送給前端的消息。伺服器一推送,便會主動觸發其中方法。

    ws.onmessage = function (e) {

        //e 服務端傳回資料

        var received_msg = e.data;

        console.log(e)

        msg.innerHTML += received_msg += '<br>'

    //連接配接斷開

    ws.onclose = function () {

        console.log("連接配接已關閉...");

    //異常斷開

    ws.onerror = function () {

        console.log('連接配接異常斷開...')

    }

    function fun() {

        console.log(fun)

    fun()

</script>

</html>

4.開啟服務

nodejs搭建簡易伺服器,模拟webSocket 背景主動推送消息給浏覽器進行接收。1。

5.運作html檔案在浏覽器打開,點選按鈕即可檢視。

繼續閱讀