WebSocket 程式碼演示
關於WebSocket基本知識可以參閱以下三篇文章:
(1).WebSocket 用法詳解一章節。
(2).WebSocket 握手一章節。
(3).WebSocket API一章節。
下面再分享一段程式碼例項,它演示了WebSocket應用。
node作為執行環境,使用ws搭建一個WebSocket伺服器;也用到了request元件。
關於node和相關元件的安裝這裡就不多介紹,下面直接看程式碼:
客戶端程式碼:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> var socket = new WebSocket("ws://localhost:8181"); socket.onopen = function(openEvent) { console.log("WebSocket conntected."); }; socket.onmessage = function(messageEvent) { var data = messageEvent.data; console.log(data); }; socket.onerror = function(errorEvent) { console.log("WebSocket error: ", errorEvent); }; socket.onclose = function(closeEvent) { console.log("WebSocket closed."); }; window.onload=function(){ var bt=document.getElementById("bt"); bt.onclick=function(){ var val=document.getElementById("txt").value; if(val==""){ alert("不能為空"); }else{ socket.send(val); } } } </script> </head> <body> <input type="text" id="txt"/> <input type="button" value="提交資料" id="bt"/> </body> </html>
伺服器端程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var request = require('request'); var http=require("http"); var WebSocketServer = require('ws').Server; var wss = new WebSocketServer({ port: 8181 }); var data=[ "address:青島市南區", "age:4", "url:www.softwhy.com" ] var timer=null; var count=0; // 收到來自客戶端的連線請求後,開始給客戶端推訊息 wss.on("connection", function(ws) { ws.on("message", function(message) { console.log(5); if(message =="螞蟻部落"){ sendMess(ws); } }); }); function sendMess(ws){ ws.send(data[count]); count=count+1; if(count==data.length){ clearTimeout(timer); ws.close(); count=0; return; } timer=setTimeout(sendMess,2000,ws) }
在客戶端文字框輸入"螞蟻部落",點選提交按鈕,在伺服器端進行簡單的判斷。
然後通過定時器函式setTimeout()模擬伺服器端新資訊的產生,每隔2秒主動向客戶端傳送一次資訊。
程式碼執行效果截圖如下:
相關文章
- java WebSocket 服務端程式碼JavaWeb服務端
- nms 演算法演示(附程式碼)演算法
- ECMASCRIPT 2021新功能程式碼演示案例
- kafka消費者提交方式(程式碼演示)Kafka
- CSS設定div邊框演示程式碼CSS
- 簡單演示Excel中VBA程式碼的使用Excel
- 遺留程式碼處理技巧與案例演示
- 【.NET基礎】Linq常用語法程式碼演示
- Spring-1-AOP概念簡述-程式碼演示Spring
- CSS滑鼠懸浮出現遮罩層程式碼演示CSS遮罩
- 超詳細 | 使用Nexus搭建私服 (帶程式碼演示)
- 高手 Linux 程式碼炫酷秀(含演示視訊)Linux
- 程式碼演示Mybatis-Generator 擴充套件自定義生成MyBatis套件
- 氣泡排序的演變過程及程式碼演示排序
- 快速掌握RabbitMQ(二)——四種Exchange介紹及程式碼演示MQ
- Laravel 中引入 Swoole Websocket 並實現熱更新 Reload 程式碼LaravelWeb
- Node.js - 200 多行程式碼實現 Websocket 協議Node.js行程Web協議
- 一起Talk IOS吧(第十二回 OC中程式結構程式碼演示)iOS
- Python Selenium的簡單演示程式Python
- 從Chrome原始碼看WebSocketChrome原始碼Web
- android studio呼叫攝像頭拍照及具體步驟演示程式碼Android
- 【深度學習】TensorFlow實現線性迴歸,程式碼演示。全md文件筆記(程式碼文件已分享)深度學習筆記
- 【.NET 6】多執行緒的幾種開啟方式和程式碼演示執行緒
- python計算三角形面積詳細程式碼演示Python
- Python3+pygame中國象棋 程式碼完整 非常好 有效果演示PythonGAM
- Spring Boot + Kotlin + Coroutines應用演示程式Spring BootKotlin
- 【Nginx】面試官問我Nginx如何配置WebSocket?我給他現場演示了一番!!Nginx面試Web
- 原始碼開放:WebSocket應用示例原始碼Web
- C# WebSocket Fleck 原始碼解讀C#Web原始碼
- WebSocket+Netty構建web聊天程式WebNetty
- 微信小程式websocket聊天室微信小程式Web
- 淘寶/天貓新增到購物車 API 呼叫詳情步驟(程式碼演示)API
- 如何使用低程式碼開發平臺快速建立一個應用 | 例項演示
- Python3+pygame實現的俄羅斯方塊 程式碼完整 有演示效果PythonGAM
- 012 Rust 網路程式設計,gRPC 演示示例Rust程式設計RPC
- YOLOv5 在最新 OpenVINO 2021R02 版本的部署與程式碼演示詳解YOLO
- 好用的websocket 心跳重連js指令碼WebJS指令碼
- SpringBoot、Kubernetes和Istio微服務網格演示原始碼Spring Boot微服務原始碼