#javascript #linux #node.js #socket.io
#javascript #linux #node.js #socket.io
Вопрос:
Я начинаю использовать socket.io Я разрабатываю очень простой чат, который подключает пользователя к серверу nodejs. У меня есть чат на www.exmaple.com/chat.html мой вопрос:
могу ли я использовать только ОДИН сокет с пользователем, который откроет чат во многих окнах?
Я имею в виду…
Как Facebook, если я открою больше вкладок, я смогу увидеть сообщение моего друга во всех окнах.
Итак, я должен сделать то же самое, но я не хочу открывать сокет в каждом окне, а только один для all…is это возможно?
Спасибо!
Ответ №1:
да, вы можете, и вы можете справиться с этим, поместив соответствующие теги в сообщения, теги показывают, какому окну принадлежит сообщение или какому пользователю …
смотрите эту ссылку для создания одноэлементного класса javascript КАК НАПИСАТЬ ОДНОЭЛЕМЕНТНЫЙ КЛАСС В JAVASCRIPT
Комментарии:
1. хммм, минуточку… проблема в том…. Как другие окна могут обрабатывать сообщения, если они не подключены к серверу?
2. Я бы подключил только ОДНО окно, а другое получило его автоматически
3. вы можете создать статический класс, который обрабатывает трафик сообщений на стороне клиента. у класса shod есть событие с именем onMessageReceived, другое окно должно обрабатывать это событие, каждый раз при получении сообщения событие будет запускаться, и все окна будут знать, и если сообщения принадлежат им, могут его обработать
4. да, правильно… я хочу это сделать … но как я могу «поделиться» классом js, который подключается к серверу ТОЛЬКО один раз?… а затем поделиться сообщением со всеми окнами / страницами? Спасибо
5. @DeveloperX Я видел ссылку, которую вы мне дали, но работает ли она на разных страницах / окнах? Я имею в виду … если я вызываю этот класс с разных страниц, могу ли я проверить, был ли объект инициализирован ранее?