public async Task Init(Context context, string userId) { _context = context; _agoraRtmHandler = new AgoraRtmHandler(); _agoraRtmHandler.OnSignalReceived += (signal) => { Log($"Signal received from {signal.RtcPeerId}"); OnSignalReceived?.Invoke(signal); }; _rtmClient = RtmClient.CreateInstance(_context, AgoraTestConstants.AgoraAPI, _agoraRtmHandler); var rtmToken = await AgoraTokenService.GetRtmToken(userId); var loginCallback = new ResultCallback(); loginCallback.OnSuccessAction += (obj) => { UserName = userId; OnLogin?.Invoke(true); Log("Login Success"); }; loginCallback.OnFailureAction += (err) => { OnLogin?.Invoke(false); Log("Login Fail"); }; _rtmClient.Login(rtmToken, userId, loginCallback); }
private void OmMessageReceived(string peerId, AgoraRtmMessage message) { var text = message.Text; var signal = JsonConvert.DeserializeObject <SignalMessage>(text); OnSignalReceived?.Invoke(signal); }
public void JoinChannel(string channel) { Log($"Joining to channel [{channel}]"); _channelListener = new AgoraRtmChannelListener(); _channelListener.OnSignalReceived += (signal) => { Log($"Signal received from {signal.RtcPeerId}"); OnSignalReceived?.Invoke(signal); }; _sendMessageChannelCallback = new ResultCallback(); _sendMessageChannelCallback.OnSuccessAction += (obj) => { Log("Send channel message Success"); OnSendMessage?.Invoke(true); }; _sendMessageChannelCallback.OnFailureAction += (obj) => { Log("Send channel message Fail"); OnSendMessage?.Invoke(false); }; _rtmChannel = _rtmClient.CreateChannel(channel, _channelListener); var channelJoinCallBack = new ResultCallback(); channelJoinCallBack.OnSuccessAction += (obj) => { Log("Join Success"); if (_rtmChannel == null) { return; } OnJoinChannel?.Invoke(true); }; channelJoinCallBack.OnFailureAction += (err) => { Log($"Join Fail. {err.ErrorDescription}"); if (_rtmChannel == null) { return; } OnJoinChannel?.Invoke(false); }; _rtmChannel?.Join(channelJoinCallBack); }
private void InitHubEvents() { _hubConnection.On <string>("UpdateOnlineUsers", (message) => { OnOnlineUsersUpdated?.Invoke(message.FromJson <List <User> >()); }); _hubConnection.On <int>("UpdateBalance", (balance) => { OnBalanceUpdated?.Invoke(balance); }); _hubConnection.On <string>("IncomingCall", (connectionId) => { OnIncomingCall?.Invoke(connectionId); }); _hubConnection.On <string>("CallAccepted", (connectionId) => { OnCallAccepted?.Invoke(connectionId); }); _hubConnection.On <string>("CallDeclined", (message) => { OnCallDeclined?.Invoke(message.FromJson <UserActionMessage>()); }); _hubConnection.On <string>("CallEnded", (message) => { OnCallEnded?.Invoke(message.FromJson <UserActionMessage>()); }); _hubConnection.On <string>("CallDenied", (message) => { OnCallDenied?.Invoke(message.FromJson <ServerActionMessage>()); }); _hubConnection.On <string>("Poll", (message) => { OnPoll?.Invoke(message.FromJson <PollMessage>()); }); _hubConnection.On <string, string>("ReceiveSignal", (connectionId, data) => { OnSignalReceived?.Invoke(connectionId, data); }); _hubConnection.On <string>("UpdateUsers", (message) => { OnUsersUpdated?.Invoke(message.FromJson <List <User> >()); }); _hubConnection.On <string>("UpdateCalls", (message) => { OnCallsUpdated?.Invoke(message.FromJson <List <UserCall> >()); }); _hubConnection.On <string>("CallAborted", (message) => { OnCallAborted?.Invoke(message.FromJson <ServerActionMessage>()); }); }