GeekHub-2020.js icon indicating copy to clipboard operation
GeekHub-2020.js copied to clipboard

Домашнее задание № 13 - WebSocket

Open redexp opened this issue 4 years ago • 1 comments

Видео: https://youtu.be/jn5p-WAmtpk

Основное задание:

Теперь к нашему todo-list + ajax добавляем WebSocket.

  1. Я открываю две вкладки, вижу один и тотже todo-list. В первой начинаю набирать текст - во второй тут же появляется новое туду в которой синхронно меняется текст с тем что я ввожу на первой вкладке.
  2. Если я удалю текст в первой вкладке - то во второй пропадает полностью туду
  3. Если я напишу текст и нажму enter - то и у меня и во второй вкладке добавляется тудушка, удалить которую теперь можно только по кнопке "destroy" с крестиком.
  4. Соответственно, удаление любой туду синхронизируется во всех вкладках
  5. Изменение статуса complete так же синхронизируется

По поводу сравнения faye и socket.io. Я вам показывал, что фае работает с каналами, типа урлы на которые вы можете подписаться и можете посылать сообщения. Сокет.ио, больше работает с парадигмой - событий, типо сервер посылает событие, а вы на него подписывваетесь. Плюс у них есть парадигма "комнат", что клиент может подписаться на комнату и только члены комнаты будут принимать события внутри этой комнаты.

Плюсы фае: не нужно писать дополнительный код, чтобы начать коммуникацию клиент - клиент. Минусы фае: нельзя послать сообщение от сервера - чисто одному пользователю, можно только в канал, на который может кто угодно подписаться, получается нужно писать дополнительный код, который запрещает подписываться на канал пренадлежащий только одному пользователю.

Плюсы сокет.ио: не нужно писать дополнительный код, чтобы отправлять сообщение только одному пользователю; есть готовый код для организации "комнат" и получения списка пользователей внутри комнаты.

redexp avatar Feb 16 '21 07:02 redexp

Домашку можно делать в папке с express

redexp avatar Feb 19 '21 05:02 redexp