【原創】mock websocket鏈接的方法

在做一個websocket的數據推送功能,但是無法使用mock模擬數據,就用下面這種方式進行模擬,思路:node起一個服務後,推送隨機數據。
第一步 可在全局安裝安裝依賴

npm i nodejs-websocket -g

第二步 將下面代碼copy到一個index.js的文件中

//如果沒有該段代碼,客戶端主動斷開連接的話,會拋出tcp.read()異常,導致程序掛掉。 
process.on('uncaughtException', function (err) {
  console.log(err);
  console.log(err.stack);
});
try{
    var ws=require("nodejs-websocket")
    var server=ws.createServer(function (conn) {
	    console.log("new connection");
        /**
         * 定時發送消息
         */
        setInterval(()=>{
            conn.sendText("send from server:")
        },2000)
        // 收到信息觸發     接收 //
        conn.on("text",function (str) {
            console.log("received data:"+str)
            conn.sendText("send from server:"+str)
        })
        // 斷開連接觸發 //
        conn.on("close",function (coded,reason) {
            console.log("connection closed")
        })
        // 出錯觸發 //
        conn.on("error", function(code,reason) {
            console.log('異常關閉', code)
        })
    }).listen(8088)
}
catch(e)
{
    console.log("exception:"+e);
}

第三步 用node執行index.js文件,此時會看到控制檯的下面的這個日誌,說明websocket已經跑起來了。

new connection

第四步 在客戶端的代碼中編寫下面代碼

	  var ws = new WebSocket("ws://localhost:8088/");// 設置服務器地址
      ws.onopen=function(){ 			 // onopen 連接觸發
	        console.log("websocket open");
      ws.onclose=function(){ 			// onclose 斷開觸發 
	        console.log("websocket close");
      }
      ws.onmessage =function(e){ 		// onmessage 接收到信息觸發 
		   console.log(”onmessage:“,e.data);
      }

運行客戶端,執行第四步,即可

在切換頁面時記得把websocket關閉

ws.close()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章