Есть ли stomp поверх websocket в PHP?

#php #http #stomp

#php #http #stomp

Вопрос:

Я использую Node.js чтобы запустить STOMP через WebSocket, потому что он поддерживает пользовательские заголовки. При HTTP-квитировании серверу требуется cookie для проверки подлинности, а не токен в адресе.

Как PHPer, я хочу использовать это в PHP, но долго искал в Google и не нашел способа. кто-нибудь может помочь?

Ответ №1:

STOMP не ограничивается Node.js , или Java и т.д. Есть

Что касается вашего конкретного сценария, трудно найти прямой ответ, не зная более подробной информации, но вот пример из stomp-php library samples, который устанавливает пользовательский заголовок:

 use StompClient;
use StompSimpleStomp;
use StompTransportMap;


// make a connection
$client = new Client('tcp://localhost:61613');
$stomp = new SimpleStomp($client);


// send a message to the queue
$body = array('city' => 'Belgrade', 'name' => 'Dejan');
$header = array();
$header['transformation'] = 'jms-map-json';
$mapMessage = new Map($body, $header);
$client->send('/queue/test', $mapMessage);
echo 'Sending array: ';
print_r($body);

$stomp->subscribe('/queue/test', 'transform-test', 'client', null, ['transformation' => 'jms-map-json']);
/** @var Map $msg */
$msg = $stomp->read();

// extract
if ($msg != null) {
    echo 'Received array: ';
    print_r($msg->map);
    // mark the message as received in the queue
    $stomp->ack($msg);
} else {
    echo "Failed to receive a messagen";
}
 

Комментарии:

1. большое вам спасибо. Я пробовал эту библиотеку (stomp) раньше, однако клиент не может настроить заголовок, я отказываюсь от этого. извините за мой плохой английский.

Ответ №2:

вам нужна оболочка потока websocket, если вы хотите подключиться с использованием протокола