@Denis1111

Как сделать личные сообщения на node js socket.io?

Как сделать личные сообщения на node js socket.io?
Есть сервер, есть авторизация и чат. Авторизация связана с чатом.
Вопрос: Как делается не общий чат, а приватный?!?!? В интернете ничего не нашёл.
Если можно, приведите какой-нибудь простой код или объясните принцип работы.
Я знаю как отправить сообщение конкретному сокету, по socket.id но я не знаю как его использовать и вообще не понимаю, что с ним делать, как получить от клиента его и по его же ид ему переслать сообщение. Помогите.
  • Вопрос задан
  • 412 просмотров
Пригласить эксперта
Ответы на вопрос 2
Со стороны клиента передай jwt токен или куки (сессию). На стороне ноды напиши мидлвар, который в момент подключения обработает эти данные и запишет клиента.
Например, так:
const io = socket();

io.use(async (socket, next) => {
	try {
		const { token } = socket.handshake.query;
		const data = await verify(token);
		socket.request.user = data;
		return next();
	} catch (err) {
		// ignore
		return next();
	}
})


Теперь у тебя в объекте подключения есть данные пользователя и ты можешь отправить сообщение конкретному пользователю, найдя его соединение.
Ответ написан
@artkhromov
Учиться когда уже знаешь азы проще всего изучая опенсорсные проекты
Попроще:
Let's Chat sdelements.github.io/lets-chat
node-chat https://github.com/IgorAntun/node-chat
Посложнее:
Rocket Chat https://rocket.chat (https://github.com/RocketChat)

+ У самого Socket.io неплохой туториал насколько я помню и Feathers.js (реалтайм фреймворк на основе Express)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Simplanum Казань
от 60 000 до 140 000 руб.
CS Money Санкт-Петербург
от 100 000 до 180 000 руб.
от 100 000 до 150 000 руб.
21 февр. 2019, в 19:31
2000 руб./за проект
21 февр. 2019, в 18:22
20000 руб./за проект
21 февр. 2019, в 17:43
15000 руб./за проект