Photon Chat: как получать сообщения — подробное руководство с примерами кода

Photon Chat — это мощная платформа для обмена сообщениями в режиме реального времени, которая позволяет разработчикам интегрировать функции чата в свои приложения. В этой статье мы рассмотрим различные способы получения сообщений с помощью Photon Chat и предоставим примеры кода, которые помогут вам начать работу. Независимо от того, являетесь ли вы новичком или опытным разработчиком, это руководство предоставит вам знания и инструменты для эффективной реализации приема сообщений в вашем приложении Photon Chat.

Метод 1: использование обратного вызова OnMessageReceived
Обратный вызов OnMessageReceived — это простой и понятный метод получения сообщений в Photon Chat. Вот пример того, как использовать его в Unity с C#:

using Photon.Chat;
using UnityEngine;
public class ChatReceiver : MonoBehaviour, IChatClientListener
{
    private ChatClient chatClient;
    void Start()
    {
        chatClient = new ChatClient(this);
        chatClient.Connect("your-app-id", "your-app-version", new AuthenticationValues("your-username"));
        chatClient.Subscribe("your-channel");
    }
    public void OnMessageReceived(string channelName, string sender, object message)
    {
        Debug.Log($"Received message from {sender} in channel {channelName}: {message}");
    }
}

Метод 2: использование ChatEventCode
Photon Chat предоставляет набор кодов событий, которые можно использовать для обработки различных событий, связанных с чатом. Код события ChatEventCode.MessageReceived специально разработан для приема сообщений. Вот пример того, как это сделать в Unity с C#:

using Photon.Chat;
using UnityEngine;
public class ChatReceiver : MonoBehaviour, IChatClientListener
{
    private ChatClient chatClient;
    void Start()
    {
        chatClient = new ChatClient(this);
        chatClient.Connect("your-app-id", "your-app-version", new AuthenticationValues("your-username"));
        chatClient.Subscribe("your-channel");
    }
    public void OnEvent(ChatEventCode eventCode, object content, int senderId)
    {
        if (eventCode == ChatEventCode.MessageReceived)
        {
            var message = (ChatMessage)content;
            Debug.Log($"Received message from {message.Sender} in channel {message.Channel}: {message.Message}");
        }
    }
}

Метод 3: использование веб-перехватчиков
Если вы хотите получать сообщения за пределами вашего приложения, вы можете использовать веб-перехватчики. Веб-перехватчики позволяют настроить обратные вызовы HTTP, которые запускаются при возникновении определенных событий, таких как получение сообщения, в Photon Chat. Реализация веб-перехватчиков зависит от используемой вами серверной технологии. Вот общий пример использования Node.js и Express:

const express = require('express');
const app = express();
app.post('/webhook', (req, res) => {
    const message = req.body; // Assuming the message is included in the request body
    console.log(`Received message from ${message.sender} in channel ${message.channel}: ${message.message}`);
    // Process the message further
    res.sendStatus(200);
});
app.listen(3000, () => {
    console.log('Webhook server is running on port 3000');
});