实现服务端和客户端的实时双向数据传输-WebSocket简单了解 (2)

ArrayBufferView:可以以二进制帧的形式发送任何 JavaScript 类数组对象 ;其二进制数据内容将被队列于缓冲区中。值 bufferedAmount 将加上必要字节数的值。

// 文本: ws.send("hello world"); // ArrayBuffer const buffer = new ArrayBuffer(8); ws.send(buffer); // Blob var demo = { hello: "world" }; var blob = new Blob([JSON.stringify(demo, null, 2)], { type: "application/json", }); ws.send(blob); WebSocket.close()

关闭当前链接。

两个可选参数:

code: 可选,一个数字状态码,它解释了连接关闭的原因。如果没有传这个参数,默认使用 1005

reason: 可选,可读的字符串,它解释了连接关闭的原因。

事件类型

WebSocket.onclose 用于指定连接关闭后的回调函数。

WebSocket.onerror 用于指定连接失败后的回调函数。

WebSocket.onmessage 用于指定当从服务器接受到信息时的回调函数。

WebSocket.onopen 用于指定连接成功后的回调函数。

服务端使用

如果各个服务器端语言实现方法不一样,这里简单说下我的测试环境。

测试使用的是 node.js 配合 nodejs-websocket 进行的

具体使用如下:

// 引入nodejs-websocket var ws = require("nodejs-websocket"); // 创建websocket var server = ws .createServer(function (conn) { // 监听消息 conn.on("text", function (str) { // 调用相关方法 loadMessage(conn, str); }); // 监听关闭 conn.on("close", function (code, reason) { console.log("关闭"); }); }) .listen(8001); console.log("开启成功~"); // 接收消息 并返回信息 function loadMessage(conn, str) { conn.send(str + "获取到消息,已接收消息,已返回回答"); } 最后附上运行截图

开启服务器端WebSocket:

image

客户端运行:

image

当服务器关闭服务:

image

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzdfx.html