在现代 Web 应用程序的开发中,使用 WebSocket 已经成为了必要的选择,因为它可以允许客户端与服务器之间进行实时的双向通信。在 Node.js 中有许多的 WebSocket 框架可供选择,而其中 Fastify 是一种基于 Node.js 的高效且快速的 web 框架,它提供了一个良好的基础来构建 WebSocket 应用程序。
Fastify 中的 WebSocket
Fastify 目前没有内置的 WebSocket 支持,但是可以使用 fastify-websocket
插件来实现 WebSocket 的功能。fastify-websocket
插件是一个基于 ws
库实现的快速且轻巧的 WebSocket 插件,可以在几行代码中实现 WebSocket 支持。
安装插件
首先,我们需要安装 fastify-websocket
插件:
npm i fastify-websocket
创建 WebSocket 服务器
使用 fastify-websocket
插件创建 WebSocket 服务器很容易,需要先创建一个 Fastify 服务器,然后添加 fastify-websocket
插件。接下来我们可以使用 get
方法在 Fastify 中创建 WebSocket 服务器:
-- -------------------- ---- ------- ----- ------- - -------------------- ---------------------------------------------- ------------------------- - ---------- ---- -- ------------ -------- -- - ------------------------------- ------- -- - --------------------------------------- -------- ------- --------- ----------- --- -- --
在 get
方法中,我们指定了一个路由并注册了 fastify-websocket
插件。 { websocket: true }
意味着这是一个 WebSocket 路由。当客户端通过 WebSocket 连接到这个路径的时候,Fastify 会将请求的 socket 与这个连接对象进行关联。在这个示例中,当客户端发送消息的时候,连接对象会发送带有应答的消息。
发送和接收消息
要向客户端发送消息,我们可以使用连接对象本身或它上面绑定的 WebSocket 实例。在本例中,我们使用连接对象直接发送消息,因为我们是在服务器上发送消息。在客户端处理代码中,在 WebSocket 实例上监听 message
事件并打印传入的消息。
-- -------------------- ---- ------- ----- --------- - ------------- ----- ------ - --- ------------------------------------------ ------------- - ----- -- - ------------------- --------- - ---------------- - ----- -- - ------------------- ----- ----------------------------------- -
总结
fastify-websocket
插件是在 Fastify 上轻松实现 WebSocket 的快速方法。没有必要使新框架,只需要简单地注册插件即可。本文提供了 WebSocket 服务器和客户端通信示例,以供学习和指导。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6656d615d3423812e4bd5093