Javascript Sails.js简单私人消息(发布/订阅和模型)

Javascript Sails.js简单私人消息(发布/订阅和模型),javascript,node.js,sockets,sails.js,publish-subscribe,Javascript,Node.js,Sockets,Sails.js,Publish Subscribe,我的目标: 使用尽可能简单的代码创建专用消息传递平台 最佳实践的假设: 用于实时通知 用于与WebSocket一起使用的DB 用于获取消息 我的问题: 我是否可以只使用某些新型号的插座手表(例如,查找用户id与发件人或收件人id匹配的位置),或者我是否需要设置房间?选择性观看似乎容易得多,但文档似乎并不支持它 如果我以上的任何假设或问题都不是实现我的目标的最佳方式,那么使用SAIL实现私人消息传递的最简单方式是什么 我所尝试的: 订阅和观看套接字 阅读 查看示例(使用房间) 在S

我的目标:

使用尽可能简单的代码创建专用消息传递平台


最佳实践的假设:

  • 用于实时通知
  • 用于与WebSocket一起使用的DB
  • 用于获取消息

我的问题:

  • 我是否可以只使用某些新型号的插座手表(例如,查找用户id与发件人或收件人id匹配的位置),或者我是否需要设置房间?选择性观看似乎容易得多,但文档似乎并不支持它
  • 如果我以上的任何假设或问题都不是实现我的目标的最佳方式,那么使用SAIL实现私人消息传递的最简单方式是什么

我所尝试的:

  • 订阅和观看套接字
  • 阅读
  • 查看示例(使用房间)
  • 在StackOverflow和Google中搜索sails聊天示例

    • 我想最简单的方法是使用sails中实现的socket.io,如果我没记错的话,它就是socket

      可以使用socket.io(客户端)IIRC调用所有控制器。 我采用的方法是创建一个名为messages的模型,然后简单地为消息创建几个端点。如果您想使用模型(发布/订阅),可以只订阅您想要的模型。您可以为每个用户订阅一个模型,即使您有很多用户

      我过去的做法是手动执行,当我收到一条消息时,我会立即将其发送到正确的客户端。但是如果你想写更少的代码,你可能只需要向用户订阅你的模型
      model.subscribe()
      () 因此,当一条消息被添加到数据库中时,您可以将其发送给您需要的任何人


      下面是另一个建立在sails.js之上的聊天示例:

      每个问题都应该像这个问题一样清楚。您是否试图在这里只支持直接聊天?或者可以有多人聊天的房间?乍一看,房间似乎是最简单的解决方案。没有选择性。很遗憾,请注意。是的,从您的问题中不清楚为什么您认为房间不是最佳解决方案。假设您希望某个特定用户的每个连接套接字接收该用户的消息,那么您提出的任何实现都只是对文件室的重新设置。如果每个客户端都在观看新的消息模型,那么他们将接收针对其他用户的消息,对吗?我想确保服务器只向接收客户端发送消息,因此如果可能的话,有选择的监视将是非常好的。subscribe()方法仅根据文档获取现有数据库记录中的更改(它不接收.publishCreate()消息)。有选择性手表()吗?如果没有,最简单的消息传递方式是什么?当我发送消息时,我有一个连接到userID的套接字列表,比如
      POST/message/user1
      ,代码中发生的事情是,如果user1在我的列表中有套接字(来自redis),我会搜索它,然后将消息发送给他
      list['user1'。emit('privateMessage',msg)当然,那会管用,但这似乎并不比使用房间容易。你为什么选择这个而不是房间?你的意思是为每个用户创建一个房间?那么所有的会话都加入到这个房间,然后你发布到那个房间来联系用户?这实际上是我在第二个版本中使用的方法,但没有使用sails。我关心的是在多个位置、选项卡、电话等与同一用户聊天(每个套接字连接都有不同的id)