Пробую Redchat, чтобы реализовать один проект на виртуальном хостинге.
У проекта такая структура обмена данными:
(1) - клиент, (2) - мой сервер (на виртуальном хостинге), (3) - чужой сервер.
Обмен нужен по сути между (1) и (3), но будет происходить только через мой (2).
То есть такая цепочка: (1) => (2) => (3) => (2) => (1).
Запросы поступают регулярно и чтобы снизить нагрузку на свой хостинг, решил организовать между (1) и (2) вебсокет.
А между (2) и (3) будет обычный http, потому что последний вебсокет всё равно не поддерживает.
И вот я сделал как в туториале по ссылке выше, всё работает, клёво.
Но не понимаю саму суть, как это подстроить под себя.
То есть не понимаю, куда слать запросы-то.
В примере мы шлем на локалхост по стандартному порту. На моем хостинге это будет просто адрес скрипта... верно? А какого скрипта?
Вот скрипт запуска сервера (chat-server.php):
require dirname(__DIR__) . '/vendor/autoload.php';
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8081
);
$server->run();
Запустить через консоль легко: php chat-server.php
, запускается локальный хост и все запросы отправляются туда.
И Ratchat использует заготовленный скрипт для чата, тоже по уроку.
Что он делает вроде как вопросов не вызывает... Но я не понимаю, что нужно допилить, чтобы вставить это в свой хостинг? На openserver хотя бы для понимания, чтобы обмен данными по вебсокету происходил? Куда слать запросы? На какой-то скрипт?
И ещё не понятно, как организовать посылку сообщений для одного подключенного клиента.
То есть одно соединение - одна работа с ответами.
То есть у меня не идея в том, чтобы чат реализовывать, примеры которого просто кишат ютюбы и все статьи. А ничего другого вообще нет. (Погодите, а вдруг Ратчет именно этим и занимается, и нельзя создать коннекшн один к одному?)
В примере приводится такой код для отсеивания (в данном примере, сообщение передается всем, кроме подключенных соединений):
public function onMessage(ConnectionInterface $from, $msg) {
foreach ($this->clients as $client) {
if ($from !== $client) {
// The sender is not the receiver, send to each client connected
$client->send($msg);
}
}
}
Можно написать условие, чтобы сообщение отправлялось тому, кто его, собственно, прислал. Но будет ли это правильным способом? Я просто не уверен.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно получить интервалы заходов юзера 57, а он считается от его первого входа, до авторизации другого юзераСудя по массиву он входил 2 раза:...
Есть формаПередает данные методом POST В файле куда отправляются данные, такой код:
Нужно загрузить картинку на сервер но при переносе выдает ошибку
Наткнулся на код сервера, предназначение которого обеспечение ajax + long polling запросы к серверу