nodejs實現前后端websocket通信+心跳示例

nodejs后端代碼? server.js

//需要安裝ws模塊  npm install ws  
const WebSocket = require("ws")
const port = 8085const ws = new WebSocket.Server({port})ws.on("connection", (socket) => {socket.on("message",(message) => {const data = JSON.parse(message.toString('utf-8'))if(data.type === 'heart') {socket.send("收到心跳")} else {socket.send(`你發來的類型是${data.type}`)}})socket.on("close", () => {socket.send("close")})
})
console.log(`server start at ${port}`)

直接在文件所在目錄打開cmd窗口,啟動服務: node server.js

瀏覽器端? index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><button type="button" onclick="sendWs()">發送消息</button><button type="button" onclick="closeWs()">關閉鏈接</button><div>發送第<span id="count"></span>次心跳</div>
</body>
</html>
<script>
const ws =   new WebSocket("ws://localhost:8085");
let count = 0
const interval = setInterval(() => {count++ws.send(JSON.stringify({type:'heart'}))document.getElementById("count").innerHTML = count}, 1000)const sendWs = () => {if(!ws) return;ws.send(JSON.stringify({type:'message',data:{}}))
}const closeWs = () => {clearInterval(interval)ws.close()
}</script>

在本地直接運行瀏覽器即可!

如果有幫助,就點個贊再走 ^? ^

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36025.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自定義hook之首頁數據請求動作封裝 hooks

本例子實現了自定義hook之首頁數據請求動作封裝 hooks&#xff0c;具體代碼如下 export type OrganData {dis: Array<{ disease: string; id: number }>;is_delete: number;name: string;organ_id: number;parent_id: number;sort: number; }; export type SwiperData …

【STM32】簡介

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介紹&#xff1a;"謓澤"正在路上朝著"攻城獅"方向"前進四" &#x1f50e;&#x1f3c5; 榮譽&#xff1a;2021|2022年度博客之星物聯網與嵌入式開發TOP5|TOP4、2021|2022博客之星T…

(2)linux虛擬機配置中文輸入法和如何下載軟件

&#xff08;一&#xff09;配置中文輸入法&#xff1a; 1、sudo apt-get install fcitx&#xff0c;安裝fcitx框架&#xff0c;安裝完成之后&#xff0c;選擇該框架 2、接下來輸入sudo apt-get install fcitx fcitx-googlepinyin&#xff0c;安裝谷歌輸入法之后&#xff0c;重…

WebSocket與消息推送

B/S結構的軟件項目中有時客戶端需要實時的獲得服務器消息&#xff0c;但默認HTTP協議只支持請求響應模式&#xff0c;這樣做可以簡化Web服務器&#xff0c;減少服務器的負擔&#xff0c;加快響應速度&#xff0c;因為服務器不需要與客戶端長時間建立一個通信鏈接&#xff0c;但…

Windows - UWP - 網絡不好的情況下安裝(微軟商店)MicrosoftStore的應用

Windows - UWP - 網絡不好的情況下安裝&#xff08;微軟商店&#xff09;MicrosoftStore的應用 前言 UWP雖然幾乎被微軟拋棄了&#xff0c;但不得不否認UWP應用給用戶帶來的體驗。沙箱的運行方式加上微軟的審核&#xff0c;用戶使用起來非常放心&#xff0c;并且完美契合Wind…

聚類與回歸

聚類 聚類屬于非監督式學習&#xff08;無監督學習&#xff09;&#xff0c;往往不知道因變量。 通過觀察學習&#xff0c;將數據分割成多個簇。 回歸 回歸屬于監督式學習&#xff08;有監督學習&#xff09;&#xff0c;知道因變量。 通過有標簽樣本的學習分類器 聚類和…

前端實現文件預覽功能

前端實現文件預覽功能 ? 需求&#xff1a;實現一個在線預覽pdf、excel、word、圖片等文件的功能。 介紹&#xff1a;支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代碼實現所有功能&#xff0c;建議以下的預覽文件標簽可以在外層包裹一層彈窗。 ? 圖片預覽 iframe標簽…

前端雜項-個人總結八股文的背誦方案

個人總結八股文的背誦方案 URL到顯示網頁的過程 瀏覽器解析URL&#xff0c;獲取協議&#xff0c;主機名&#xff0c;端口號&#xff0c;路徑等信息&#xff0c;并通過DNS查詢將主機名轉換為對應的IP地址瀏覽器與服務器建立TCP&#xff0c;進行三次握手。瀏覽器向服務器發送HT…

枚舉緩存工具

此文章為筆記&#xff0c;為閱讀其他文章的感受、補充、記錄、練習、匯總&#xff0c;非原創&#xff0c;感謝每個知識分享者。 文章目錄 1. 背景2. 枚舉緩存3. 樣例展示4. 性能對比5. 總結 本文通過幾種樣例展示如何高效優雅的使用java枚舉消除冗余代碼。 1. 背景 枚舉在系統…

不需要用@Param注解與需要用@Param注解的情況

不需要用Param注解&#xff1a; 1.只有一個參數時&#xff0c;不需要用Param注解。此時在不使用Parma注解的情況下&#xff0c;sql語句中的參數占位符名稱直接使用任何名稱均可&#xff1b; 2.方法參數是引用數據類型的情況下&#xff0c;不需要用Param注解。 需要用Param注…

QT生成Word PDF文檔

需求&#xff1a;將軟件處理的結果保存為一個報告文檔&#xff0c;文檔中包含表格、圖片、文字&#xff0c;格式為word的.doc和.pdf。生成word是為了便于用戶編輯。 開發環境&#xff1a;qt4.8.4vs2010 在qt的官網上對于pdf的操作介紹如下&#xff1a;http://qt-project.org/…

華為認證 | H3C廠商證書,含金量有多高?

華為H3C認證是中國第一家建立國際規范的完整的網絡技術認證體系&#xff0c;它的作用是不言而喻的&#xff0c;工作上它能給你帶來技能加分。 那么H3C認證網絡工程師證書含金量怎么樣呢&#xff1f;下面我們就來了解一下吧。 01 H3C認證網絡工程師證書含金量 全面覆蓋H3C相關…

微服務Eureka注冊中心

目錄 一、Eureka的結構和作用 二、搭建eureka-server 三、服務注冊 四、服務發現 假如我們的服務提供者user-service部署了多個實例&#xff0c;如圖&#xff1a; 存在的問題&#xff1a; order-service在發起遠程調用的時候&#xff0c;該如何得知user-service實例的ip地址…

深度學習快速入門系列---損失函數

在深度學習中&#xff0c;損失函數的作用是量化預測值和真實值之間的差異&#xff0c;使得網絡模型可以朝著真實值的方向預測&#xff0c;損失函數通過衡量模型預測結果與真實標簽之間的差異&#xff0c;反映模型的性能。同時損失函數作為一個可優化的目標函數&#xff0c;通過…

10個微服務設計模式

微服務設計模式是一種指導微服務架構設計和開發的一系列原則和實踐。微服務設計模式的目的是為了解決微服務架構中遇到的一些常見的問題和挑戰&#xff0c;比如服務劃分、服務通信、服務治理、服務測試等。微服務設計模式可以幫助我們構建出高效、可靠、可擴展、可維護的微服務…

九耶丨閣瑞鈦倫特-井字棋html5代碼

你想了解關于井字棋&#xff08;Tic-Tac-Toe&#xff09;的HTML代碼嗎&#xff1f;以下是一個簡單的井子棋的HTML代碼示例&#xff1a; <!DOCTYPE html> <html> <head><title>Tic-Tac-Toe</title><style>.board {display: flex;flex-wrap…

使用AT命令操作Modem 3G/4G模塊

1. 引言 AT命令是一種通信協議&#xff0c;用于控制和配置各種設備&#xff0c;尤其在通信領域中具有重要性。它的名稱來源于"ATtention"&#xff08;注意&#xff09;&#xff0c;因為命令通常以"AT"開頭。AT命令最早被用于調制解調器&#xff0c;用于與…

redis學習筆記(三)

文章目錄 key操作&#xff08;1&#xff09;查找鍵&#xff08;2&#xff09;判斷鍵是否存在&#xff08;3&#xff09;查看鍵的的值的數據類型&#xff08;4&#xff09;刪除鍵以及鍵對應的值&#xff08;5&#xff09;查看鍵的有效期&#xff08;6&#xff09;設置key的有效期…

springboot整合rabbitmq

rabbitmq的七種模式 Hello word 客戶端引入依賴 <!--rabbitmq 依賴客戶端--><dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.8.0</version></dependency> 生產者 imp…

STM32 LoRa源碼解讀

目錄結構&#xff1a; SX1278 |-- include | |-- fifo.h | |-- lora.h | |-- platform.h | |-- radio.h | |-- spi.h | |-- sx1276.h | |-- sx1276Fsk.h | |-- sx1276FskMisc.h | |-- sx1276Hal.h | |-- sx1276LoRa.h | -- sx1276LoRaMisc.h – src |-- fifo.c |-- lora.c |-- …