npm 包 sails-hook-sockets 使用教程

阅读时长 4 分钟读完

前言

在现代 Web 开发中,实时的通讯方式越来越流行。而 Socket.IO 是一种非常流行的实时通讯技术。Sails.js 是一种使用 Socket.IO 的完整 Web 应用程序框架,也是一个用于构建 Node.js 中端应用的 MVC 框架。在 Sails.js 中,sails-hook-socket 是一个很重要的包,它提供了非常方便的应用程序开发方式。本文将讲解如何使用 npm 包 sails-hook-sockets。

简介

sails-hook-sockets 包是 Sails.js 的一个插件,它可以轻松地将 Socket.IO 集成到 Sails.js 应用程序中,极大地简化了编写实时应用程序的难度。sails-hook-sockets 库的主要优点有:

  • 集成了 Socket.IO 库,你不用再去独立地引入 Socket.IO 库。
  • 提供了非常方便的配置方式,简单易用。
  • 支持 Sails.js 的所有功能。

安装

安装 sails-hook-sockets 的方式非常简单,只需要执行以下命令即可:

使用

sails-hook-sockets 的使用非常容易,只需执行以下步骤:

  1. 配置

配置 sails.config.sockets 对象:

其中,transports: ['websocket'] 说明只开启 websocket 的传输协议,这也是 Socket.IO 最常用的一个传输协议;pingTimeout: 25000 表示超时时间为 25 秒;onlyAllowOrigins: ['http://localhost:1337'] 表示只允许从 http://localhost:1337 这个地址发起的请求;authorization 参数表示是否需要对服务进行身份验证,如果为 true,则需要客户端在连接时携带身份验证信息(如 cookie 、 token 等),这样服务端才能对身份进行验证,验证通过后才能建立连接。

  1. 创建/添加事件

在 sails.config.sockets.afterHooks 中设置响应事件,如:

其中,sails.sockets.broadcast 就是一个事件处理程序,可以将消息广播到所有连接到服务器的客户端;sails.sockets.getId(socket) 是一个函数,可以得到当前客户端的 socket id,也可以通过它实现点对点的消息传递。

  1. 启动

最后,在 Sails.js 项目的启动文件(如 app.js)中注册 hooks ,如下所示:

以上两行代码初始化 Socket 钩子并启动服务。

Demo:

-- -------------------- ---- -------
---------------------- - -
  ----------- --------- --- -- -
    ------------------------- -- --------
    ------------------------------- ---------- -
      -------- --------
    ---
    ------ -----
  -
--

定于 myHook 钩子,使用 sails.sockets.broadcast(roomId, eventName, data [, ignoredSockets]) 方法,向房间 room 推送数据。

结语

sails-hook-sockets 包为 Sails.js 应用程序提供了非常方便和快速的 Socket.IO 集成方式,使得开发者可以非常容易地实现实时的通讯功能。本文介绍了 sails-hook-sockets 的安装和使用方式,希望对开发者有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/77210

纠错
反馈