GeekHub-2020.js
GeekHub-2020.js copied to clipboard
Домашнее задание № 13 - WebSocket
Видео: https://youtu.be/jn5p-WAmtpk
Основное задание:
Теперь к нашему todo-list + ajax
добавляем WebSocket
.
- Я открываю две вкладки, вижу один и тотже
todo-list
. В первой начинаю набирать текст - во второй тут же появляется новое туду в которой синхронно меняется текст с тем что я ввожу на первой вкладке. - Если я удалю текст в первой вкладке - то во второй пропадает полностью туду
- Если я напишу текст и нажму enter - то и у меня и во второй вкладке добавляется тудушка, удалить которую теперь можно только по кнопке "destroy" с крестиком.
- Соответственно, удаление любой туду синхронизируется во всех вкладках
- Изменение статуса complete так же синхронизируется
По поводу сравнения faye
и socket.io
. Я вам показывал, что фае работает с каналами, типа урлы на которые вы можете подписаться и можете посылать сообщения. Сокет.ио, больше работает с парадигмой - событий, типо сервер посылает событие, а вы на него подписывваетесь. Плюс у них есть парадигма "комнат", что клиент может подписаться на комнату и только члены комнаты будут принимать события внутри этой комнаты.
Плюсы фае: не нужно писать дополнительный код, чтобы начать коммуникацию клиент - клиент
. Минусы фае: нельзя послать сообщение от сервера - чисто одному пользователю, можно только в канал, на который может кто угодно подписаться, получается нужно писать дополнительный код, который запрещает подписываться на канал пренадлежащий только одному пользователю.
Плюсы сокет.ио: не нужно писать дополнительный код, чтобы отправлять сообщение только одному пользователю; есть готовый код для организации "комнат" и получения списка пользователей внутри комнаты.
Домашку можно делать в папке с express