public override void process(ClientMessage message, Transceiver connection) { if(message.type == "newUser") { this.RequestKey(message.Get("username")); } }
public override void process(ClientMessage message, Transceiver connection) { if(message.type == "userRequest") { if(this._user_cache.ContainsKey(message.Get("username"))) { this.StartChat(message.Get("username"), (string)this._user_cache[message.Get("username")]); } else { this.SendRequest(message.Get("username"), connection); } } else if(message.type == "userMessage") { this.SendUserMessage(message, connection); } }
private void SendUserMessage(ClientMessage cmessage, Transceiver connection) { Message message = new Message(); message.type = Message.Type.UserToUser; message.destination_plugin_hash = cmessage.Get("destination"); Chat content = new Chat(); content.AddContent("message", cmessage.Get("message")); content.AddContent("time", cmessage.Get("time")); message.content = content; connection.Write(message); Logger.log("Messenger: Chat message sent.", Logger.Verbosity.moderate); }
public override void process(ClientMessage message, Transceiver connection) { Logger.log("Processing connection message.", Logger.Verbosity.moderate); if(message.type == "connect") { string server = message.Get("server"); string port_s = message.Get("port"); this._username = message.Get("username"); this._password = message.Get("password"); int port = Convert.ToInt32(port_s); Logger.log("Making connection.", Logger.Verbosity.moderate); if(this.EstablishConnection(server, port)) { Message notice = new Message(); notice.type = Message.Type.Loop; notice.creator_plugin_hash = this._hash_code; notice.origin = connection; Event connected = new Event(); connected.etype = "connection"; connected.AddContent("status", "connected"); connected.type = BasicContent.Type.Event; notice.content = connected; this._controller.message_pump.process_message(notice); this.SendUINotice("Connected"); Logger.log("Client now connected to server.", Logger.Verbosity.moderate); this.SendPluginListing(connection); Logger.log("Connection steps are now complete.", Logger.Verbosity.moderate); } else { this.SendUINotice("Failed"); Logger.log("Failed to establish connection to server.", Logger.Verbosity.moderate); } } }
private void ReceiveMessage() { int recHostId; int connectionId; int channelId; byte[] recBuffer = new byte[BUFFER_LENGTH]; int dataSize; byte error; while (true) { NetworkEventType recData = NetworkTransport.Receive(out recHostId, out connectionId, out channelId, recBuffer, BUFFER_LENGTH, out dataSize, out error); switch (recData) { case NetworkEventType.ConnectEvent: connections.Add(connectionId); Debug.Log(string.Format("Client connected hostId:{0}, connectionId:{1}", recHostId, connectionId)); break; case NetworkEventType.DataEvent: var formatter = new BinaryFormatter(); var stream = new MemoryStream(recBuffer); var netMsg = (NetMessage)formatter.Deserialize(stream); if (netMsg.Type == Messages.READY_FOR_CHARACTER) { ReadyForCharacter(connectionId); return; } if (netMsg.Broadcast) { foreach (var connection in connections) { if (connection != connectionId) { Debug.Log("Send Message broadcast"); SendMessage(netMsg, connection); } } } MessageBus.SendMessage(ClientMessage.Get( (netMsg.NetId == -1 ? netMsg.Type.ToString() : Channel.GetFullSubscribeType( SubscribeType.Network, netMsg.NetId, netMsg.Type.ToString())), connectionId, (MessageData)netMsg.Data)); stream.Close(); break; case NetworkEventType.DisconnectEvent: break; case NetworkEventType.BroadcastEvent: break; default: case NetworkEventType.Nothing: return; } } }