チャンネルメッセージ
Send, receive and manage text messages in Vivox channels.
読み終わるまでの所要時間 2 分最終更新 23日前
TextOnly または TextAndAudio の ChatCapability を使用して、テキストが有効になっている特定の Vivox チャンネルに VivoxMessage を送信できます。
チャンネルメッセージを送信する
VivoxService.Instance.SendChannelTextMessageAsync(string channelName, string message)channelNamemessagepublic async void SendMessageAsync(){ if (string.IsNullOrEmpty(MessageInputField.text)) { return; } VivoxService.Instance.SendChannelTextMessageAsync(LobbyChannelName, MessageInputField.text); MessageInputField.text = string.Empty;}
チャンネルメッセージを受信する
テキストが有効になっているチャンネルからメッセージを受信するには、VivoxService.Instance.ChannelMessageReceivedVivoxMessage.ChannelNameVivoxMessage.FromSelf//Subscribe to this event at some point in the Vivox initialization process,//preferably before joining any channels.. . .VivoxService.Instance.ChannelMessageReceived += OnChannelMessageReceived;. . .void OnChannelMessageReceived(VivoxMessage message){ var channelName = message.ChannelName; var senderName = message.SenderDisplayName; var senderId = message.SenderPlayerId; var messageText = message.MessageText; var timeReceived = message.ReceivedTime; var language = message.Language; var fromSelf = message.FromSelf; var messageId = message.MessageId;}
チャンネルテキストメッセージの履歴
Vivox では、VivoxService.Instance.GetChannelTextMessageHistoryAsync(string channelName, int requestSize = 10, ChatHistoryQueryOptions chatHistoryQueryOptions = null)channelNamerequestSizechatHistoryQueryOptionsChatHistoryQueryOptionIReadOnlyCollection
以下のコードスニペットは、設定された LobbyChannelName から最新の 25 件のメッセージをプルし、任意の ChatHistoryQueryOptions は使用せずに、送信者の表示名とメッセージを古いものから新しいものへの順でログ記録する例です。
public async void FetchHistoryAsync(){ var historyMessages = await VivoxService.Instance.GetChannelTextMessageHistoryAsync(LobbyChannelName, 10); //Reversing the messages so they display from oldest to newest var reversedMessages = historyMessages.Reverse(); foreach(VivoxMessage message in reversedMessages) { Debug.Log($"{message.SenderDisplayName}: {message.MessageText}"); }}
チャンネルメッセージを編集する
Vivox では、VivoxService.Instance.EditChannelTextMessageAsync(string channelName, string messageId, string newMessage)VivoxService.Instance.ChannelMessageEditedpublic async void UpdateChannelMessageAsync(VivoxMessage messageToUpdate, string updatedMessageText){ await VivoxService.Instance.EditChannelTextMessageAsync(messageToUpdate.ChannelName, messageToUpdate.MessageId, updatedMessageText);}
チャンネルメッセージを削除する
Vivox では、VivoxService.Instance.DeleteChannelTextMessageAsync(string channelName, string messageId)VivoxService.Instance.ChannelMessageDeletedpublic async void DeleteChannelMessageAsync(VivoxMessage messageToDelete){ await VivoxService.Instance.DeleteChannelTextMessageAsync(messageToDelete.ChannelName, messageToDelete.MessageId)}