@BloodVIRUS

Как работать с socket.io?

Здравствуйте. Осваиваю socket.io, хочу сделать умную штучку, в которой некоторая группа пользователей будет совместно совершать какие-то действия (не чат).

Научился на какие-то события принимать сообщения и отправлять их всем\конкретному пользователю.

Не могу понять как внутри сокета хранить какие-то свои данные. Если я возьму и в событие коннект добавлю $temp[] = 1, то при любом кол-ве подключений у меня переменная темп будет всегда с одним элементом. Что логично, скрипт отработал и умер, но не логично, этож вроде сервер, соединение держит... По этому прошу помочь мне разобраться, подсказать несколько примеров того как..

-как в сокете хранить свои данные какие-то? (могу для этого использовать mysql, но это ведь костыль?
- как получить ид соединения? Есть вообще ид соединения?
- как работать с комнатами? создавать, удалять, получать список пользователей\соединений в них?

на гит нашел только это, методом научного тыка дотыкался до возможности отправить сообщение пользователю что подсоединился а не всем.
use Workerman\Worker;
use PHPSocketIO\SocketIO;

// listen port 2021 for socket.io client
$io = new SocketIO(2021);
$io->on('connection', function($socket)use($io){
  $socket->on('chat message', function($msg)use($io,$socket){
    $io->emit('chat message', $msg);
	$socket->emit('chat message', "Отправлено".date('h:m:s',time()));
	
  });
  
});

Worker::runAll();


Спасибо.
  • Вопрос задан
  • 795 просмотров
Пригласить эксперта
Ответы на вопрос 1
butschster
@butschster
Senior PHP Developer
WebSocket — протокол полнодуплексной связи (может передавать и принимать одновременно) поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.

Он данные только передает, вся логика на стороне сервера.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы