WebSocket 是一种支持双向通信的网络传输协议,可以让 Web 应用程序实时交换信息。在 Deno 中使用 WebSocket 可以轻松地实现双向通信,本文就来介绍一下如何使用 WebSocket 发送二进制数据。
为什么要发送二进制数据
WebSocket 发送消息的方法有两种:文本消息和二进制消息。文本消息是指发送一串字符,比如一句话或者一个 JSON 对象。而二进制消息则可以发送任何数据,比如图片、音频、视频等。在某些场景下,使用二进制消息可以更好地满足需求。
WebSocket 的基本使用方法
在 Deno 中,我们可以使用 WebSocket
对象来创建 WebSocket 服务器或者客户端。首先我们需要创建一个 WebSocket 服务器:
------ - ----- - ---- --------------------------------------- ------ - ---------- ---------------------- - ---- ---------------------------------- ----- ------ - ------- ----- ---- --- ---------------------- ------ ------- -- ---- ------- --- ----- ------ --- -- ------- - -- -------- --- ------ - ----- - ----- -- ---------- -- ---------- ------- - - ---- --------------------------------- ---- ---------- -- - ------------------- ------------ --- ----- ------ ----- -- --- - -- ------------------------------ - ------------------- --------------- - ---- -- ------- ----- --- --------- - ----------------- ------- --------- ----------- ----- --------------- - ---- -- ------ ---------- ----------- - ------------------- ------- ----------- -- ----- ------- - - --- - -
上面的代码创建了一个 WebSocket 服务器,监听 8080 端口。当有客户端连接到 /ws
路径时,会调用 WebSocket.accept
方法接收这个客户端的连接。在这个方法里面,我们可以对这个客户端的文本消息和二进制消息进行处理。
对于客户端代码,我们可以使用 WebSocket
对象来建立连接,并发送消息:
----- -- - --- ------------------------------------ --------- - -- -- - ----------------------- --------- ----- ------- - ------ ------- ----------------- -- ------------ - ------- -- - ----------------- ------- --------- ---------------- -- ---------- - -- -- - ------------------- --------------- --
这段代码会创建一个 WebSocket 对象,连接到 ws://127.0.0.1:8080/ws
这个路径。当连接成功后,会发送一条文本消息 hello world
,并在接收到服务器的响应消息后输出。当连接关闭时,会输出 server disconnected
。
发送二进制数据
发送二进制数据需要使用 WebSocket
对象的 send
方法,并传入一个 ArrayBuffer
或者 Uint8Array
对象。下面是一个发送二进制图片的示例:
----- -- - --- ------------------------------------ --------- - -- -- - ----------------------- --------- ----- --- - ----- -------------------------- ------------- -- ------------ - ------- -- - ------------------- ------- --------- ---------------- -- ---------- - -- -- - ------------------- --------------- --
这段代码会读取当前路径下的 test.png
文件,并将其发送给服务器。当服务器收到这个二进制消息后,会按照上面的方式进行处理。
总结
本文介绍了在 Deno 中如何使用 WebSocket 发送二进制数据。需要注意的是,在发送二进制数据时,很可能需要对数据进行压缩或者加密,以确保数据的安全性和传输效率。如果你想要了解更多关于 WebSocket 的知识,可以参考 WebSocket API 或者阅读 Websocket 底层原理 等相关资料。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6543ced57d4982a6ebdd0276