public void SendChannel(string channel, AgoraRtmMessage message) { var rtmChannels = AgoraRtm.RtmKit.Channels; if (rtmChannels[channel] is AgoraRtmChannel rtmChannel) { var options = new AgoraRtmSendMessageOptions { EnableOfflineMessaging = AgoraRtm.OneToOneMessageType == OneToOneMessageType.Offline }; rtmChannel.SendMessage(message, options, (state) => { Console.Write($"send channel msg state: {state}"); var current = AgoraRtm.Current; if (current == null) { return; } AppendMsg(current, message); }); } }
private void OmMessageReceived(string peerId, AgoraRtmMessage message) { var text = message.Text; var signal = JsonConvert.DeserializeObject <SignalMessage>(text); OnSignalReceived?.Invoke(signal); }
public void SendPeerMessage(string peerId, string text) { var rtmMessage = new AgoraRtmMessage(text); _rtmKit.SendMessage(rtmMessage, peerId, (state) => { Console.WriteLine($"RTM send peer msg state: {state}"); OnSendMessage?.Invoke(state == AgoraRtmSendPeerMessageErrorCode.Ok); }); }
public void SendChannelMessage(string text) { var rtmMessage = new AgoraRtmMessage(text); _rtmChannel.SendMessage(rtmMessage, (state) => { Console.WriteLine($"RTM send channel msg state: {state}"); OnSendMessage?.Invoke(state == AgoraRtmSendChannelMessageErrorCode.Ok); }); }
public void SendPeer(string peer, string msg) { var message = new AgoraRtmMessage(msg); AgoraRtm.RtmKit.SendMessage(message, peer, (state) => { Console.WriteLine($"send peer msg state: ({state})"); var current = AgoraRtm.Current; AppendMsg(current, msg); }); }
public void AppendMsg(string user, AgoraRtmMessage message) { var msg = new Message(user, message); _messages.Add(msg); var end = _messages.Count - 1; InvokeOnMainThread(() => { Table.ReloadData(); Table.ScrollColumnToVisible(end); }); }
public static void AddOfflineMessage(AgoraRtmMessage offlineMessage, string user) { if (offlineMessage == null || !offlineMessage.IsOfflineMessage) { return; } if (!_offlineMessages.TryGetValue(user, out List <AgoraRtmMessage> userMessages)) { userMessages = new List <AgoraRtmMessage>(); } userMessages.Add(offlineMessage); _offlineMessages[user] = userMessages; }
public void AppendMsg(string user, AgoraRtmMessage message) { var msg = new Message(user, message); _list.Add(msg); var end = NSIndexPath.FromRowSection(_list.Count - 1, 0); InvokeOnMainThread(() => { TableView.ReloadData(); TableView.ScrollToRow(end, UITableViewScrollPosition.Bottom, true); }); }
public void SendPeer(string peer, AgoraRtmMessage message) { var options = new AgoraRtmSendMessageOptions { EnableOfflineMessaging = AgoraRtm.OneToOneMessageType == OneToOneMessageType.Offline }; AgoraRtm.RtmKit.SendMessage(message, peer, options, (state) => { Console.WriteLine($"send peer msg state: ({state})"); var current = AgoraRtm.Current; AppendMsg(current, message); }); }
public static void AddOfflineMessage(AgoraRtmMessage message, string user) { if (!message.IsOfflineMessage) { return; } var messages = new List <AgoraRtmMessage>(); if (_offlineMessages.ContainsKey(user)) { messages = _offlineMessages[user]; } messages.Add(message); _offlineMessages[user] = messages; }
private bool PressedReturnToSendText(string name, string text) { if (string.IsNullOrEmpty(text)) { return(false); } var message = new AgoraRtmMessage(text); switch (ChatType) { case ChatType.Peer: SendPeer(name, message); break; case ChatType.Group: SendChannel(name, message); break; } return(true); }
public void SendChannel(string channel, string msg) { var rtmChannels = AgoraRtm.RtmKit.Channels; if ((rtmChannels[channel] is AgoraRtmChannel rtmChannel)) { var message = new AgoraRtmMessage(msg); rtmChannel.SendMessage(message, (state) => { Console.Write($"send channel msg state: {state}"); var current = AgoraRtm.Current; if (current == null) { return; } AppendMsg(current, msg); }); } }
public override void MessageReceived(AgoraRtmKit kit, AgoraRtmMessage message, string peerId) { AppendMessage(peerId, message); }
public override void MessageReceived(AgoraRtmChannel channel, AgoraRtmMessage message, AgoraRtmMember member) { InvokeOnMainThread(() => OnMessageReceived(member.UserId, message)); }
public Message(string userId, AgoraRtmMessage rtmMessage) { UserId = userId; RtmMessage = rtmMessage; }