/// <summary> /// /// </summary> /// <param name="requestObject"></param> private void DispatchRequest(IMPObject requestObject) { IMessage message = new Message(); if (requestObject.IsNull(CONTROLLER_ID)) { throw new Exception("Request rejected: No Controller ID in request!"); } if (requestObject.IsNull(ACTION_ID)) { throw new Exception("Request rejected: No Action ID in request!"); } message.Id = Convert.ToInt32(requestObject.GetShort(ACTION_ID)); message.Content = requestObject.GetMPObject(PARAM_ID); message.IsUDP = requestObject.ContainsKey(UDP_PACKET_ID); if (message.IsUDP) { message.PacketId = requestObject.GetLong(UDP_PACKET_ID); } int @byte = requestObject.GetByte(CONTROLLER_ID); IController controller = this.bitSwarm.GetController(@byte); if (controller == null) { throw new Exception("Cannot handle server response. Unknown controller, id: " + @byte); } controller.HandleMessage(message); }
public override void HandleMessage(IMessage message) { if (mpnet.Debug) { log.Info(message.ToString()); } IMPObject content = message.Content; //Hashtable data = new Hashtable(); //data["cmd"] = content.GetUtfString(KEY_CMD); //data["params"] = content.GetMPObject(KEY_PARAMS); //if (message.IsUDP) //{ //data["packetId"] = message.PacketId; //} //MPEvent evt = new MPEvent(MPEvent.EXTENSION_RESPONSE, data); string cmd = content.GetUtfString(KEY_CMD); IMPObject parameters = content.GetMPObject(KEY_PARAMS); if (message.IsUDP) { parameters.PutLong("packetId", message.PacketId); } mpnet.HandleExtension(cmd, parameters); //mpnet.DispatchEvent(new MPEvent(MPEvent.EXTENSION_RESPONSE, data)); }
private void FnLogin(IMessage msg) { IMPObject content = msg.Content; Hashtable data = new Hashtable(); if (content.IsNull(BaseRequest.KEY_ERROR_CODE)) { mpnet.MySelf = new MPUser(content.GetInt(LoginRequest.KEY_ID), content.GetUtfString(LoginRequest.KEY_USER_NAME)); mpnet.MySelf.PrivilegeId = content.GetShort(LoginRequest.KEY_PRIVILEGE_ID); mpnet.SetReconnectionSeconds(content.GetShort(LoginRequest.KEY_RECONNECTION_SECONDS)); mpnet.MySelf.PrivilegeId = content.GetShort(LoginRequest.KEY_PRIVILEGE_ID); data["user"] = mpnet.MySelf; data["data"] = content.GetMPObject(LoginRequest.KEY_PARAMS); MPEvent evt = new MPEvent(MPEvent.LOGIN, data); mpnet.DispatchEvent(evt); } else { short code = content.GetShort(BaseRequest.KEY_ERROR_CODE); data["errorCode"] = code; mpnet.DispatchEvent(new MPEvent(MPEvent.LOGIN_ERROR, data)); } }