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秒主動向客戶端傳送一次資訊。
程式碼執行效果截圖如下:
相關文章
- jQuery的change事件程式碼演示jQuery事件
- 閉包程式碼例項演示
- java WebSocket 服務端程式碼JavaWeb服務端
- nms 演算法演示(附程式碼)演算法
- javascript遞迴例項程式碼演示JavaScript遞迴
- CSS設定div邊框演示程式碼CSS
- css清除浮動程式碼例項演示CSS
- Java之反射程式碼演示說明Java反射
- kafka消費者提交方式(程式碼演示)Kafka
- ECMASCRIPT 2021新功能程式碼演示案例
- 遺留程式碼處理技巧與案例演示
- CSS滑鼠懸浮出現遮罩層程式碼演示CSS遮罩
- 函式節流throttle和debounce程式碼演示函式
- JavaScript函式和方法區別演示程式碼JavaScript函式
- HTML5 localStorage使用演示程式碼例項HTML
- 簡單演示Excel中VBA程式碼的使用Excel
- 【.NET基礎】Linq常用語法程式碼演示
- Spring-1-AOP概念簡述-程式碼演示Spring
- HTML5新增的input型別程式碼演示HTML型別
- 超酷創意HTML5動畫演示及程式碼HTML動畫
- html5+go+websocket簡單例項程式碼HTMLGoWeb單例
- Lines演示程式
- 程式碼演示Mybatis-Generator 擴充套件自定義生成MyBatis套件
- 氣泡排序的演變過程及程式碼演示排序
- 高手 Linux 程式碼炫酷秀(含演示視訊)Linux
- css3 filter屬性作用演示程式碼例項CSSS3Filter
- 5-14節介紹SWT/JFace的演示程式碼
- 超詳細 | 使用Nexus搭建私服 (帶程式碼演示)
- 快速掌握RabbitMQ(二)——四種Exchange介紹及程式碼演示MQ
- 從Chrome原始碼看WebSocketChrome原始碼Web
- 程式碼高亮外掛——wangHightLighter.js——demo演示JS
- Laravel 中引入 Swoole Websocket 並實現熱更新 Reload 程式碼LaravelWeb
- Node.js - 200 多行程式碼實現 Websocket 協議Node.js行程Web協議
- 一起Talk IOS吧(第十二回 OC中程式結構程式碼演示)iOS
- ASP.NET MVC驗證碼演示ASP.NETMVC
- 【Nginx】面試官問我Nginx如何配置WebSocket?我給他現場演示了一番!!Nginx面試Web
- 微信小程式websocket聊天室微信小程式Web
- Python3+pygame中國象棋 程式碼完整 非常好 有效果演示PythonGAM