Задать вопрос
@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();


Спасибо.
  • Вопрос задан
  • 796 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
butschster
@butschster
Senior PHP Developer
WebSocket — протокол полнодуплексной связи (может передавать и принимать одновременно) поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽