Следуя гайду на оффицаильном сайте socket.io я сделал простенький чат. Далее мне захотелось поделить этот чат на комнаты, где в рамках каждой комнаты будут отправляться свои сообщения, которые не будут видны в других комнатах. Изучив документацию я написал следующий код... На сервере:
io.on('connection', function(socket) {
var room_name = socket.request.headers.referer; //Ссылка на страницу, где пользователь присоеденился к сокету (считай уникальное имя для комнаты)
// Подключаемся к комнате
socket.join(room_name, function(){
//Пытаемся отправить сообщение в текущую комнату
io.to(room_name, function () {
socket.on('chat message', function (msg) {
io.emit('chat message', msg);
});
});
});
});
На клиенте:
$(function () {
var socket = io();
//Когда мы сабмитим форму
$('form').submit(function(){
//Отправляем данные на обработку серверному коду.
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
//Ну и просто в нашем HTML коде создаём сообщение
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
});
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости