@Denis1111

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

Как сделать личные сообщения на node js socket.io?
Есть сервер, есть авторизация и чат. Авторизация связана с чатом.
Вопрос: Как делается не общий чат, а приватный?!?!? В интернете ничего не нашёл.
Если можно, приведите какой-нибудь простой код или объясните принцип работы.
Я знаю как отправить сообщение конкретному сокету, по socket.id но я не знаю как его использовать и вообще не понимаю, что с ним делать, как получить от клиента его и по его же ид ему переслать сообщение. Помогите.
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 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)
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Acme Crypto Corp Нижний Новгород
от 80 000 до 140 000 руб.
от 200 000 до 300 000 руб.
19 дек. 2018, в 15:12
15000 руб./за проект
19 дек. 2018, в 15:08
2000 руб./за проект
19 дек. 2018, в 14:38
2500 руб./за проект