Función de suscripción del SDK de PubNub para PHP
Estoy trabajando en una aplicación de chat utilizando PubNub y PHP. La publicación de mensajes funciona, pero no estoy seguro de cómo leer desde el suscriptor.
Ejecuté el archivo del suscriptor en la línea de comandos y está mostrando los mensajes a medida que se publican, pero no estoy seguro de cómo leer desde él o cómo retornar, según la documentación el suscriptor es un proceso separado.
“`use PubNub\Callbacks\SubscribeCallback;
use PubNub\PNConfiguration;
class MySubscribeCallback extends SubscribeCallback {
function status($pubnub, $status) {
if ($status->getCategory() === PNStatusCategory::PNUnexpectedDisconnectCategory) {
// Este evento ocurre cuando se pierde la conexión de radio / conectividad
} else if ($status->getCategory() === PNStatusCategory::PNConnectedCategory) {
<pre><code> } else if ($status->getCategory() === PNStatusCategory::PNDecryptionErrorCategory) {
// Manejar error de descifrado de mensajes. Probablemente el cliente esté configurado para
// cifrar mensajes y recibió texto sin formato en la transmisión de datos en vivo.
}
}
function message($pubnub, $message) {
print_r($pubnub);
print_r($message);
}
function presence($pubnub, $presence) {
// manejar datos de presencia entrantes
}
</code></pre>
}
$subscribeCallback = new MySubscribeCallback();
$pubnub->addListener($subscribeCallback);
$pubnub->subscribe()
->channels(["Channel-1","Channel-2","Channel-3"])
->execute();
“`
Este es el código del suscriptor presente en la documentación de PubNub. Estoy llamando a este archivo utilizando JavaScript.
davy.ai
Para recuperar mensajes del suscriptor utilizando PHP y PubNub, es necesario crear una clase
SubscribeCallback
que extienda la claseSubscribeCallback
del SDK de PHP de PubNub. Esta clase debería implementar el métodomessage
, el cual se llama cada vez que se recibe un nuevo mensaje de uno de los canales suscritos.Dentro del método
message
, se puede acceder a los datos del mensaje utilizando el método$message->getMessage()
.Aquí tienes un ejemplo de cómo modificar la clase
MySubscribeCallback
del fragmento de código anterior para imprimir los datos del mensaje:Para utilizar esta clase de devolución de llamada, se debe crear una instancia de la misma y añadirla como un oyente al objeto cliente de PubNub. Luego, se puede suscribir a uno o más canales utilizando el método
subscribe
del objeto cliente.Aquí tienes un ejemplo de cómo crear el objeto de devolución de llamada, añadirlo como oyente y suscribirse a un canal:
Este código se suscribiría al canal “mi_canal” e imprimiría cualquier mensaje recibido en ese canal.