Exemple #1
0
 public override void process(ClientMessage message, Transceiver connection)
 {
     if(message.type == "newUser")
     {
         this.RequestKey(message.Get("username"));
     }
 }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
 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);
 }
Exemple #4
0
 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);
         }
     }
 }
Exemple #5
0
        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;
                }
            }
        }