public void SendChatMessage() { client = NakamaData.Singleton.Client; clientUserName = NakamaData.Singleton.ClientUserName; if (chatInputBox.text == "") { return; } Debug.LogWarning("Sending a message"); ManualResetEvent sendMessage = new ManualResetEvent(false); chatInputText = chatInputBox.text; chatInputBox.text = ""; string chatMessage = "{\"messageText\": \"[" + clientUserName + " " + DateTime.Now.ToString("HH:mm:ss") + "] " + chatInputText + "\"}"; NTopicMessageSendMessage msg = NTopicMessageSendMessage.Default(currentTopic, Encoding.UTF8.GetBytes(chatMessage)); client.Send(msg, (INTopicMessageAck ack) => { Debug.Log("Message being sent"); sendMessage.Set(); }, (INError error) => { Debug.LogErrorFormat("Player could not send message: '{0}'.", error.Message); }); sendMessage.WaitOne(1000, false); }
private void SendMatchInfoToMatchRoom(string addRemove, int maxHealth) { client = NakamaData.Singleton.Client; ManualResetEvent sendMessage = new ManualResetEvent(false); Guid matchID_Guid = new Guid(matchID); //Debug.LogWarning("Encoding.UTF8.GetString(matchID): " + Encoding.UTF8.GetString(matchID)); //Guid test = new Guid(matchID); string chatMessage = "{\"addRemove\":\"" + addRemove + "\",\"matchName\":\"" + matchName + "\",\"userName\":\"" + NakamaData.Singleton.ClientUserName + "\",\"matchIDGUID\":\"" + matchID_Guid.ToString() + "\",\"matchMaxHealth\":\"" + maxHealth + "\"}"; //Debug.LogWarning("DEBUG:::: chatJson.matchIDGUID: " + test + " chatJson.matchIDGUID..ToByteArray(): " + test.ToByteArray() + " Encoding.UTF8.GetString(matchID)" + Encoding.UTF8.GetString(matchID)); //Debug.LogWarning("DEBUG:::: Encoding.UTF8.GetString(test.ToByteArray()): " + Encoding.UTF8.GetString(test.ToByteArray()) + " Encoding.UTF8.GetString(matchID)" + Encoding.UTF8.GetString(matchID)); NTopicMessageSendMessage msg = NTopicMessageSendMessage.Default(matchListTopic, Encoding.UTF8.GetBytes(chatMessage)); client.Send(msg, (INTopicMessageAck ack) => { Debug.Log("Match Room Data being sent: " + chatMessage); sendMessage.Set(); }, (INError error) => { Debug.LogErrorFormat("Player could not send message: '{0}'.", error.Message); }); sendMessage.WaitOne(1000, false); }
public void Player2SendChatMessage() { string chatMessage = "{\"data\": \"Player 2 says: Current time is " + DateTime.Now.ToString("yyyy-MM-dd\\THH:mm:ss\\Z") + "\"}"; NTopicMessageSendMessage msg = NTopicMessageSendMessage.Default(topicPlayer2, chatMessage); client2.Send(msg, (INTopicMessageAck ack) => { Debug.Log("Sent message to Player 1"); }, (INError error) => { Debug.LogErrorFormat("Player 2 could not send message: '{0}'.", error.Message); }); }
public void SendRoomMessage() { var topic = StateManager.Instance.Topics[RoomName]; var chatMessage = new ChatMessageContent { Body = _inputField.text }; var msg = NTopicMessageSendMessage.Default(topic, JsonUtility.ToJson(chatMessage)); NakamaManager.Instance.TopicSendMessage(msg); }
public void SendDirectMessage() { var user = StateManager.Instance.Friends[_friendSelectorDropdown.value]; var topic = StateManager.Instance.Topics[user.Id]; var chatMessage = new ChatMessageContent { Body = _inputField.text }; var msg = NTopicMessageSendMessage.Default(topic, JsonUtility.ToJson(chatMessage)); NakamaManager.Instance.TopicSendMessage(msg); }
// send topic protected void sendTopic(byte[] matchId) { var createMatchMessage = new CreateMatchMessage(); createMatchMessage.MatchId = matchId; createMatchMessage.userEnterId = this.userEnterId + 1; var data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(createMatchMessage)); var message = NTopicMessageSendMessage.Default(this.topicId, data); Application.client.Send(message, (INTopicMessageAck ack) => { Debug.Log("Successfully sent message to topic"); }, (INError error) => { Debug.LogErrorFormat("Could not send message to topic: '{0}'.", error.Message); }); }
public void MessageSendWithoutJoinTopic() { INError error = null; INTopic topic = null; ManualResetEvent evt1 = new ManualResetEvent(false); client1.Send(new NTopicJoinMessage.Builder().TopicRoom("test-room").Build(), (INResultSet <INTopic> topics) => { topic = topics.Results[0]; client1.Send(NTopicLeaveMessage.Default(topic.Topic), (bool complete) => { evt1.Set(); }, (INError err) => { error = err; evt1.Set(); }); }, (INError err) => { error = err; evt1.Set(); }); evt1.WaitOne(5000, false); Assert.IsNull(error); Assert.IsNotNull(topic); ManualResetEvent evt2 = new ManualResetEvent(false); client1.Send(NTopicMessageSendMessage.Default(topic.Topic, "{\"some\":\"data\"}"), (INTopicMessageAck ack) => { evt2.Set(); }, (INError err) => { error = err; evt2.Set(); }); evt2.WaitOne(5000, false); Assert.IsNotNull(error); }
public void MessagesListTopic() { INError error = null; ManualResetEvent evt1 = new ManualResetEvent(false); string room = "history-room"; INTopic t = null; client1.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INResultSet <INTopic> topics) => { t = topics.Results[0]; evt1.Set(); }, (INError err) => { error = err; evt1.Set(); }); evt1.WaitOne(5000, false); Assert.IsNull(error); Assert.IsNotNull(t); string data = "{\"some\":\"history data " + System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(random.GetString())) + "\"}"; for (int i = 0; i < 10; i++) { ManualResetEvent evtFor = new ManualResetEvent(false); client1.Send(NTopicMessageSendMessage.Default(t.Topic, data), (INTopicMessageAck ack) => { evtFor.Set(); }, (INError err) => { error = err; evtFor.Set(); }); evtFor.WaitOne(5000, false); if (error != null) { break; } } Assert.IsNull(error); INResultSet <INTopicMessage> messages = null; ManualResetEvent evt2 = new ManualResetEvent(false); client1.Send(new NTopicMessagesListMessage.Builder().TopicRoom(room).Forward(false).Limit(10).Build(), (INResultSet <INTopicMessage> msgs) => { messages = msgs; evt2.Set(); }, (INError err) => { error = err; evt2.Set(); }); evt2.WaitOne(5000, false); Assert.IsNull(error); Assert.IsNotNull(messages); Assert.AreEqual(10, messages.Results.Count); foreach (var msg in messages.Results) { Assert.AreEqual(data, msg.Data); } }
public void MessageSendTopic() { INError error = null; ManualResetEvent evt1 = new ManualResetEvent(false); string room = "test-room"; INTopic topic = null; client1.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INResultSet <INTopic> topics1) => { topic = topics1.Results[0]; client2.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INResultSet <INTopic> topics2) => { evt1.Set(); }, (INError err) => { error = err; evt1.Set(); }); }, (INError err) => { error = err; evt1.Set(); }); evt1.WaitOne(5000, false); Assert.IsNull(error); Assert.IsNotNull(topic); string data = "{\"some\":\"data\"}"; INTopicMessage message = null; INTopicMessageAck messageAck = null; ManualResetEvent evt2 = new ManualResetEvent(false); ManualResetEvent evt3 = new ManualResetEvent(false); client1.OnTopicMessage = (INTopicMessage msg) => { message = msg; evt2.Set(); }; client2.Send(NTopicMessageSendMessage.Default(topic.Topic, data), (INTopicMessageAck ack) => { messageAck = ack; evt3.Set(); }, (INError err) => { error = err; evt2.Set(); evt3.Set(); }); evt2.WaitOne(5000, false); evt3.WaitOne(5000, false); Assert.IsNull(error); Assert.IsNotNull(message); Assert.IsNotNull(messageAck); Assert.AreEqual(userId2, message.UserId); Assert.AreEqual(TopicMessageType.Chat, message.Type); Assert.AreEqual(data, message.Data); Assert.AreEqual(messageAck.MessageId, message.MessageId); Assert.AreEqual(messageAck.CreatedAt, message.CreatedAt); Assert.AreEqual(messageAck.ExpiresAt, message.ExpiresAt); Assert.AreEqual(messageAck.Handle, message.Handle); }
public void MessageSendTopic() { INError error = null; ManualResetEvent evt1 = new ManualResetEvent(false); byte[] room = Encoding.UTF8.GetBytes("test-room"); INTopic topic = null; client1.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INTopic topic1) => { topic = topic1; client2.Send(new NTopicJoinMessage.Builder().TopicRoom(room).Build(), (INTopic topic2) => { evt1.Set(); }, (INError err) => { error = err; evt1.Set(); }); }, (INError err) => { error = err; evt1.Set(); }); evt1.WaitOne(5000, false); Assert.IsNull(error); Assert.IsNotNull(topic); byte[] data = Encoding.UTF8.GetBytes("{\"some\":\"data\"}"); INTopicMessage message = null; INTopicMessageAck messageAck = null; ManualResetEvent evt2 = new ManualResetEvent(false); ManualResetEvent evt3 = new ManualResetEvent(false); client1.OnTopicMessage += (object source, NTopicMessageEventArgs args) => { message = args.Message; evt2.Set(); }; client2.Send(NTopicMessageSendMessage.Default(topic.Topic, data), (INTopicMessageAck ack) => { messageAck = ack; evt3.Set(); }, (INError err) => { error = err; evt2.Set(); evt3.Set(); }); evt2.WaitOne(5000, false); evt3.WaitOne(5000, false); Assert.IsNull(error); Assert.IsNotNull(message); Assert.IsNotNull(messageAck); Assert.AreEqual(userId2, message.UserId); Assert.AreEqual(TopicMessageType.Chat, message.Type); Assert.AreEqual(data, message.Data); Assert.AreEqual(messageAck.MessageId, message.MessageId); Assert.AreEqual(messageAck.CreatedAt, message.CreatedAt); Assert.AreEqual(messageAck.ExpiresAt, message.ExpiresAt); Assert.AreEqual(messageAck.Handle, message.Handle); }
public void TopicSendMessage(NTopicMessageSendMessage message) { _client.Send(message, acks => { }, ErrorHandler); }