JavaScript使用WebSocket
使用 WebSocket 可以实现点对点的全双工即时通信
ws 客户端的基本使用
1 | var ws = new WebSocket("wss://echo.websocket.org"); |
新建实例
1 | var ws = new WebSocket("ws://localhost:8080"); |
注意:
-
不能 catch 住 websocket 的超时 error 的
webSocket.readyState
返回实例的当前状态
1 | CONNECTING:值为0,表示正在连接。 |
webSocket.onopen
实例对象的onopen
属性,用于指定连接成功后的回调函数。
1 | ws.addEventListener("open", function (event) { |
webSocket.onclose
实例对象的onclose
属性,用于指定连接关闭后的回调函数。
1 | ws.addEventListener("close", function (event) { |
webSocket.onmessage
实例对象的onmessage
属性,用于指定收到服务器数据后的回调函数。
1 | ws.addEventListener("message", function (event) { |
webSocket.send()
实例对象的send()
方法用于向服务器发送数据。
1 | ws.send("your message"); |
webSocket.onerror
实例对象的onerror
属性,用于指定报错时的回调函数。
1 | socket.addEventListener("error", function (event) { |
ws 服务器端
首先引入ws
模块, 然后与客户端类似, 新建 socket 实例
使用socket.send()
发送数据
使用 socket.addEventListener("message", ({data}) => {})
或socket.on("messgae",()=>{})
接收数据
1 | import { WebSocketServer } from "ws"; |
获取所有连接
每个 ws 连接都为一个独立的socket
实例
使用server.clients
列出所有连接
向每个连接广播消息:
1 | const boardCast = () => { |
JavaScript使用WebSocket