Подтвердить что ты не робот

Простые личные сообщения Sails.js(паб/суб и модели)

Моя цель:

Создайте приватную платформу обмена сообщениями, используя Sails.js с самым простым кодом


Предположения наилучшей практики:

  • Используйте Sails.js Webockets для уведомлений в реальном времени
  • Используйте Sails.js PubSub для использования БД с помощью веб-сайтов
  • Используйте Sails.js.watch() для получения сообщений

Мои вопросы:

  • Могу ли я иметь сокет смотреть только некоторые новые модели (например, найти, где userid соответствует идентификатор отправителя или идентификатора получателя) ИЛИ мне нужно настроить комнаты? Селективное наблюдение кажется намного проще, но документация, похоже, не поддерживает его.
  • Если какое-либо из моих вышеприведенных предположений или вопросов - это не лучший способ реализовать мою цель, тогда какой самый простой способ реализовать личную передачу сообщений с помощью Sails?

Что я пробовал:

  • Подписка и просмотр сокета
  • Чтение документации Sails.js
  • Глядя на sailsChat пример (использует комнаты)
  • Поиск в StackOverflow и Google для примеров чатов в парусах
4b9b3361

Ответ 1

Самый простой способ, по-моему, использовать socket.io, реализованный в парусах, если я правильно помню, он просто называется сокетом.

Все контроллеры могут быть вызваны с socket.io(клиентская сторона) IIRC. Подход, который я принял, - создать модель, называемую сообщениями, а затем просто создать несколько конечных точек для сообщений. Если вы хотите использовать модели (pub/sub), вы можете подписаться только на те, которые вы хотите. вы можете подписаться на каждого отдельного пользователя только на одну модель, даже если у вас их много.

То, что я делал, это делать это вручную, когда я получаю одно сообщение, я сразу же отправлю его правильному клиенту. Но если вы хотите меньше писать код, вам просто нужно подписаться на вашу модель Model.subscribe() (http://sailsjs.org/documentation/reference/web-sockets/resourceful-pub-sub/subscribe) поэтому, когда сообщение добавляется в базу данных, вы можете отправить его кому бы то ни было.

Вот еще один пример чата, построенного поверх sails.js: https://github.com/asm-products/boxychat-old