socket.io API的命名空间设计模式

时间:2016-06-13 03:46:39

标签: rest websocket socket.io

我正在使用socket.io在现有REST API之上开发websocket API。

目前有几个主要模型 - 用户和订单。

对于拥有客户级权限的人,他们可以订阅socket.io名称空间/Customers和会议室:customer-id,他们只会看到创建/更新/删除事件对于他们拥有的订单。

对于拥有 admin 级权限的人,我认为他们可以订阅/Orders命名空间和:order-id房间,只能查看特定订单的事件。

然而,这有一些问题:

  • 管理员无法看到create个事件,因为他们的ID在创建之前尚未确定
  • 如果我向所有事件打开/Orders命名空间,随着应用扩展(看到所有订单中的所有事件,无论它们是否在屏幕上呈现),这可能会大大增加其大小。

基于websocket的API是否有任何类型的通用抽象/分组来限制管理员订阅的事件?

1 个答案:

答案 0 :(得分:0)

查看https://github.com/facundoolano/socketio-auth以检查经过身份验证的用户以及可能的组和权限。