node.js中使用socket.io的方法_node.js
使用socket.io的使用建立一個socket.io伺服器即可.但是該伺服器依賴於一個已經建立的http伺服器.
在http伺服器運作之後,使用listen方法為該http伺服器附加一個socket.io伺服器.
var sio=require("scoket.io");
var socket=sio.listen(server);
socket就是在server基礎上建立的一個socket.io伺服器.
當客戶端與伺服器端建立連線時,觸發socket.io服務的connection事件.
socket.on("connection",function(socket){
});
回呼函數中的socket參數是伺服器端與客戶端建立連線的socket連接埠物件.
當接收到客戶端發送的訊息時,發出socket連接埠物件的message事件.
socket.on("message",function(msg){
});
回呼函數的參數是客戶端發送的訊息.
可以使用socket.send(msg)向客戶端發送一個訊息.
當伺服器端可客戶端的連線中斷時觸發disconnect事件.
socket.on("disconnect",funciton(){
});
此回呼函數不適用任何參數.
伺服器端server.js程式碼:
var http=require("http");
var sio=require("socket.io");
var fs=require("fs");
var server=http.createServer(function (req,res) {
res.writeHead(200,{"Content-type":"text/html"});
res.end(fs.readFileSync("./index.html"));
});
server.listen(1337);
var socket=sio.listen(server);
socket.on("connection", function (socket) {
console.log("客戶端建立連線");
socket.send("你好");
socket.on("message", function (msg) {
console.log("接收到一個訊息:" msg);
});
socket.on("disconnect", function () {
console.log("客戶端斷開連線.");
});
});
建立客戶端index.html程式碼:
<script><br /> var socket=io.connect();<br /> socket.on("message", function (data) {<br /> console.log(data);<br /> socket.send("訊息已接受至.")<br /> });<br /> socket.on("disconnect", function () {<br /> console.log("伺服器端斷開連線.");<br /> });<br /> </script>
這段程式碼:/socket.io/socket.io.js有伺服器端socket.io類別庫提供,不需要再客戶端實際放置一個socket.io.js檔案.
在腳本檔案中,首先使用io.connect()方法連接伺服器端socket.io伺服器.
此方法傳回一個與伺服器端建立連線的客戶端socket連接埠物件.
當接受到伺服器端發送的訊息時,觸發客戶端socket連接埠物件的message事件.
socket.on("message",function(msg){
});
msg是伺服器端發送的資料;
也可以使用客戶端的socket物件的send()方法向伺服器端傳送資料.
socket.send(msg);
當伺服器端斷開連線時,觸發客戶端socket連接埠物件的disconnect事件,
socket.on("disconnect",function(){
})
這個回呼函數不使用任何參數.
注意:
客戶端的訊息機制與伺服器端的訊息處理機制是完全一致的.因為socket.io確保客戶端與伺服器端共用相同的API.
運行後的結果:
當關閉瀏覽器是,就斷開了與伺服器的連接,此時伺服器端觸發disconnect事件,客戶端斷開連接.

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

基於無阻塞、事件驅動建立的Node服務,具有記憶體消耗低的優點,非常適合處理海量的網路請求。在海量請求的前提下,就需要考慮「記憶體控制」的相關問題了。 1. V8的垃圾回收機制與記憶體限制 Js由垃圾回收機

文件模組是對底層文件操作的封裝,例如文件讀寫/打開關閉/刪除添加等等文件模組最大的特點就是所有的方法都提供的**同步**和**異步**兩個版本,具有sync 字尾的方法都是同步方法,沒有的都是異

選擇一個Node的Docker映像看起來像是小事,但是映像的大小和潛在漏洞可能會對你的CI/CD流程和安全造成重大的影響。那我們要如何選擇一個最好Node.js Docker映像呢?

Node 19已正式發布,以下這篇文章就來帶大家詳解了解Node.js 19的 6 大特性,希望對大家有幫助!

事件循環是 Node.js 的基本組成部分,透過確保主執行緒不被阻塞來實現非同步編程,了解事件循環對建立高效應用程式至關重要。以下這篇文章就來帶大家深入了解Node中的事件循環 ,希望對大家有幫助!

node無法用npm指令是因為沒有正確配置環境變量,其解決方法是:1、開啟“系統屬性”;2、找到“環境變數”->“系統變數”,然後編輯環境變數;3、找到nodejs所在的資料夾;4、點選「確定」即可。
