java node websocket_nodejs怎么实现webSocket接口即时通讯服务?
websocket
工作方式:廣播和收聽 # 使用場景:金融/聊天室/……
websocket:服務器支持廣泛(node/java/php/c#……) 原生API操作復雜 可以使用第三方模塊:socket.io 是在websocket的基礎上創建的模塊 優點:簡單
下載
服務器端
npm i socket.io
客戶端
使用
// 工作方式:事件綁定與事件觸發完成發送數據與接收數據
1. 服務器(發送), 客戶端(接收)
a.服務器 socket.emit("fun", data) // 服務器觸發事件fun并傳遞參數data
b.客戶端 client.on("fun", (data) => { }) //客戶端綁定事件fun,并接收參數data
2. 客戶端(發生), 服務器(接收)
a.服務器 socket.on("fun", (data) => { }) //服務器綁定事件fun,接收參數data
b.客戶端 client.emit("fun", data) //客戶端觸發事件并傳遞參數data
示例
服務器
// 創建web服務器
var server = require("http").createServer();
// 創建io對象
var io = require("http://socket.io")(server);
// 綁定監聽端口
server.listen(3000)
// 為io綁定默認事件connection: 客戶端連接到服務器自動觸發-- >
io.on("connection", (socket) => {
console.log("客戶連接到服務器")
/**socket: 是一個對象, 與客戶端通訊
觸發客戶端事件 / 綁定事件等待客戶端觸發*/
// 接收客戶端數據
socket.on("abc", (data) => { })
// 向客戶端發送數據
socket.emit("bcd", "你訂的餐到了")
// 向客戶端廣播發送數據
io.emit("www", data)
})
// 客戶端斷開連接觸發事件
io.on("disconnection", () => { })
客戶端
//(1)連接服務器
var client = io("ws://127.0.0.1:3000");
//(2)接收服務器數據
client.on("bcd", (data) => {
console.log("接收到服務器數據:" + data);
})
//(3)向服務器發送數據
client.emit("abc", "快遞到了");
//(4)接收服務器發送廣播消息
client.on("www", (data) => {
console.log("服務器廣播消息" + data);
})
總結
以上是生活随笔為你收集整理的java node websocket_nodejs怎么实现webSocket接口即时通讯服务?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux的yum详解,Linux之YU
- 下一篇: DOSBox 的安装及使用 详细教程