public override void OnResponse(Msg.Code code, object o, object ctx) { Debug.Log("callback OnResponse: " + code + " " + o); switch (code) { case Msg.Code.GetUserInfo: var response = Msg.FromJson <GetUserInfo>(o.ToString()); break; case Msg.Code.EnterStage: var r2 = Msg.FromJson <EnterStage>(o.ToString()); Debug.Log(r2.ToJson()); break; default: Debug.Log("default callback OnResponse: " + code + " " + o); break; } }
public virtual void OnResponse(Msg.Code code, object o, object ctx) { }
public override void OnResponse(Msg.Code code, object o, object ctx) { Console.WriteLine($"callback OnResponse: {code} {o}"); }
public void SendGameRequest(Msg.Code code, long uid, object o = null, object ctx = null) { queue.Enqueue(() => { Stream dataStreamSend = null; WebResponse response = null; StreamReader reader = null; Stream dataStreamRecv = null; try { var url = gameServerURL + "?uid=" + uid + "&code=" + (int)code; HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "POST"; request.Timeout = 3 * 1000; request.ReadWriteTimeout = 3 * 1000; byte[] byteArray = new byte[] { }; if (o != null) { byteArray = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(o)); } request.ContentLength = byteArray.Length; dataStreamSend = request.GetRequestStream(); dataStreamSend.Write(byteArray, 0, byteArray.Length); dataStreamSend.Close(); response = request.GetResponse(); dataStreamRecv = response.GetResponseStream(); reader = new StreamReader(dataStreamRecv); string responseFromServer = reader.ReadToEnd(); callback.OnResponse(code, responseFromServer, ctx); } catch (WebException ex) { using (HttpWebResponse res = (HttpWebResponse)ex.Response) { switch (res.StatusCode) { case HttpStatusCode.BadRequest: case HttpStatusCode.InternalServerError: var errRet = Msg.MakeErrorResponse(code, uid, (int)Msg.Err.ErrSendFailure, res.ToString()); if (errRet == null) { callback.OnError(ex); } else { callback.OnResponse(code, errRet, ctx); } break; default: callback.OnError(ex); break; } } } catch (Exception ex) { // shit happen ... 待处理 callback.OnError(ex); } finally { if (dataStreamSend != null) { dataStreamSend.Close(); } if (response != null) { response.Close(); } if (reader != null) { reader.Close(); } if (dataStreamRecv != null) { dataStreamRecv.Close(); } } }); }
public void SendGameRequest(Msg.Code code, object o = null, object ctx = null) { SendGameRequest(code, this.UserId, o, ctx); }
/// <summary> /// Hanlder for application when some an custom event occours. /// </summary> /// <param name="opcode"></param> /// <param name="operand"></param> private void OnChatRoomEvent(Msg.Code opcode, object operand) { switch (opcode) { case Msg.Code.NewUser: string userName = operand as string; if (!listUsers.Items.Contains(userName)) { listUsers.Items.Add(userName); txtRoom.SelectionStart = txtRoom.Text.Length + 1; txtRoom.SelectionColor = Color.SteelBlue; txtRoom.SelectionFont = new Font("Tahoma", 8, FontStyle.Italic); txtRoom.SelectionIndent = 0; txtRoom.AppendText(@"'" + userName + "' has joined the conversation.\r\n"); } break; case Msg.Code.UserLeft: userName = operand as string; if (listUsers.Items.Contains(userName)) // if user exist in list { listUsers.Items.Remove(userName); txtRoom.SelectionStart = txtRoom.Text.Length + 1; txtRoom.SelectionColor = Color.SteelBlue; txtRoom.SelectionFont = new Font("Tahoma", 8, FontStyle.Italic); txtRoom.SelectionIndent = 0; txtRoom.AppendText(@"'" + userName + "' has left the conversation.\r\n"); } break; case Msg.Code.Text: { Msg msg = Helper.FromByteBuffer(operand as byte[]) as Msg; if (msg == null) { return; /// not a message maybe } if ((msg.To == null)) { txtRoom.SelectionStart = txtRoom.Text.Length + 1; if (msg.From.CompareTo(_userName) == 0) { txtRoom.SelectionColor = Color.SteelBlue; } else { txtRoom.SelectionColor = Color.ForestGreen; } txtRoom.SelectionFont = new Font("Tahoma", 9, FontStyle.Bold); txtRoom.SelectionIndent = 0; txtRoom.AppendText(msg.From + " says: \r\n"); txtRoom.SelectionStart = txtRoom.Text.Length + 1; txtRoom.SelectionColor = Color.Black; txtRoom.SelectionFont = new Font("Tahoma", 9); txtRoom.SelectionIndent = 10; txtRoom.AppendText(msg.Data.ToString() + "\r\n"); } } break; } txtRoom.ScrollToCaret(); }
/// <summary> /// Hanlder for application when some an custom event occours. /// </summary> /// <param name="opcode"></param> /// <param name="operand"></param> private void OnAppEvent(object opcode, object operand) { Msg.Code code = (Msg.Code)opcode; this.Invoke(new OnChatRoomEventHandler(this.OnChatRoomEvent), new object[] { code, operand }); }
public static void deserialize_call(Msg.Code code, object s, object ctx) { string json = s.ToString(); switch (code) { case Msg.Code.GetUserInfo: { var ret = Msg.FromJson <GetUserInfo>(json); var f = ctx as rpc_callback <Ret <GetUserInfo> >; f(ret); break; } case Msg.Code.EnterStage: { var ret = Msg.FromJson <EnterStage>(json); var f = ctx as rpc_callback <Ret <EnterStage> >; f(ret); break; } case Msg.Code.ExitStage: { var ret = Msg.FromJson <ExitStage>(json); var f = ctx as rpc_callback <Ret <ExitStage> >; f(ret); break; } case Msg.Code.BattleStart: { var ret = Msg.FromJson <BattleStart>(json); var f = ctx as rpc_callback <Ret <BattleStart> >; f(ret); break; } case Msg.Code.BattleEnd: { var ret = Msg.FromJson <BattleEnd>(json); var f = ctx as rpc_callback <Ret <BattleEnd> >; f(ret); break; } case Msg.Code.EnterDungeon: { var ret = Msg.FromJson <EnterDungeon>(json); var f = ctx as rpc_callback <Ret <EnterDungeon> >; f(ret); break; } case Msg.Code.ExitDungeon: { var ret = Msg.FromJson <ExitDungeon>(json); var f = ctx as rpc_callback <Ret <ExitDungeon> >; f(ret); break; } case Msg.Code.Reborn: { var ret = Msg.FromJson <Reborn>(json); var f = ctx as rpc_callback <Ret <Reborn> >; f(ret); break; } case Msg.Code.OpenBox: { var ret = Msg.FromJson <OpenBox>(json); var f = ctx as rpc_callback <Ret <OpenBox> >; f(ret); break; } case Msg.Code.PickupLoot: { var ret = Msg.FromJson <PickupLoot>(json); var f = ctx as rpc_callback <Ret <PickupLoot> >; f(ret); break; } case Msg.Code.Equip: { var ret = Msg.FromJson <Equip>(json); var f = ctx as rpc_callback <Ret <Equip> >; f(ret); break; } case Msg.Code.Unequip: { var ret = Msg.FromJson <Unequip>(json); var f = ctx as rpc_callback <Ret <Unequip> >; f(ret); break; } case Msg.Code.Craft: { var ret = Msg.FromJson <Craft>(json); var f = ctx as rpc_callback <Ret <Craft> >; f(ret); break; } case Msg.Code.Decompose: { var ret = Msg.FromJson <Decompose>(json); var f = ctx as rpc_callback <Ret <Decompose> >; f(ret); break; } case Msg.Code.Enhance: { var ret = Msg.FromJson <Enhance>(json); var f = ctx as rpc_callback <Ret <Enhance> >; f(ret); break; } case Msg.Code.ConsumItem: { var ret = Msg.FromJson <ConsumItem>(json); var f = ctx as rpc_callback <Ret <ConsumItem> >; f(ret); break; } case Msg.Code.ListOnSale: { var ret = Msg.FromJson <ListOnSale>(json); var f = ctx as rpc_callback <Ret <ListOnSale> >; f(ret); break; } case Msg.Code.RefreshOnSale: { var ret = Msg.FromJson <RefreshOnSale>(json); var f = ctx as rpc_callback <Ret <RefreshOnSale> >; f(ret); break; } case Msg.Code.Purchase: { var ret = Msg.FromJson <Purchase>(json); var f = ctx as rpc_callback <Ret <Purchase> >; f(ret); break; } case Msg.Code.ListDiamondPrice: { var ret = Msg.FromJson <ListDiamondPrice>(json); var f = ctx as rpc_callback <Ret <ListDiamondPrice> >; f(ret); break; } case Msg.Code.SubmitOrder: { var ret = Msg.FromJson <SubmitOrder>(json); var f = ctx as rpc_callback <Ret <SubmitOrder> >; f(ret); break; } case Msg.Code.QueryOrderStatus: { var ret = Msg.FromJson <QueryOrderStatus>(json); var f = ctx as rpc_callback <Ret <QueryOrderStatus> >; f(ret); break; } case Msg.Code.LevelUp: { var ret = Msg.FromJson <LevelUp>(json); var f = ctx as rpc_callback <Ret <LevelUp> >; f(ret); break; } case Msg.Code.JobUpgrade: { var ret = Msg.FromJson <JobUpgrade>(json); var f = ctx as rpc_callback <Ret <JobUpgrade> >; f(ret); break; } case Msg.Code.RuneEquip: { var ret = Msg.FromJson <RuneEquip>(json); var f = ctx as rpc_callback <Ret <RuneEquip> >; f(ret); break; } case Msg.Code.RuneUnequip: { var ret = Msg.FromJson <RuneUnequip>(json); var f = ctx as rpc_callback <Ret <RuneUnequip> >; f(ret); break; } case Msg.Code.ExpandBagCell: { var ret = Msg.FromJson <ExpandBagCell>(json); var f = ctx as rpc_callback <Ret <ExpandBagCell> >; f(ret); break; } case Msg.Code.ExpandStashCell: { var ret = Msg.FromJson <ExpandStashCell>(json); var f = ctx as rpc_callback <Ret <ExpandStashCell> >; f(ret); break; } case Msg.Code.MoveItemsBagToStash: { var ret = Msg.FromJson <MoveItemsBagToStash>(json); var f = ctx as rpc_callback <Ret <MoveItemsBagToStash> >; f(ret); break; } case Msg.Code.MoveItemsStashToBag: { var ret = Msg.FromJson <MoveItemsStashToBag>(json); var f = ctx as rpc_callback <Ret <MoveItemsStashToBag> >; f(ret); break; } case Msg.Code.MoveGoldBagToStash: { var ret = Msg.FromJson <MoveGoldBagToStash>(json); var f = ctx as rpc_callback <Ret <MoveGoldBagToStash> >; f(ret); break; } case Msg.Code.MoveGoldStashToBag: { var ret = Msg.FromJson <MoveGoldStashToBag>(json); var f = ctx as rpc_callback <Ret <MoveGoldStashToBag> >; f(ret); break; } case Msg.Code.DestroyItem: { var ret = Msg.FromJson <DestroyItem>(json); var f = ctx as rpc_callback <Ret <DestroyItem> >; f(ret); break; } case Msg.Code.DestroyMultipleItem: { var ret = Msg.FromJson <DestroyMultipleItem>(json); var f = ctx as rpc_callback <Ret <DestroyMultipleItem> >; f(ret); break; } case Msg.Code.DestroyItemsInStash: { var ret = Msg.FromJson <DestroyItemsInStash>(json); var f = ctx as rpc_callback <Ret <DestroyItemsInStash> >; f(ret); break; } case Msg.Code.SortItemsInBag: { var ret = Msg.FromJson <SortItemsInBag>(json); var f = ctx as rpc_callback <Ret <SortItemsInBag> >; f(ret); break; } case Msg.Code.SortItemsInStash: { var ret = Msg.FromJson <SortItemsInStash>(json); var f = ctx as rpc_callback <Ret <SortItemsInStash> >; f(ret); break; } case Msg.Code.RefreshDiamond: { var ret = Msg.FromJson <RefreshDiamond>(json); var f = ctx as rpc_callback <Ret <RefreshDiamond> >; f(ret); break; } case Msg.Code.GetUserStatInfo: { var ret = Msg.FromJson <GetUserStatInfo>(json); var f = ctx as rpc_callback <Ret <GetUserStatInfo> >; f(ret); break; } case Msg.Code.UserRename: { var ret = Msg.FromJson <UserRename>(json); var f = ctx as rpc_callback <Ret <UserRename> >; f(ret); break; } case Msg.Code.PresentRedeemCode: { var ret = Msg.FromJson <PresentRedeemCode>(json); var f = ctx as rpc_callback <Ret <PresentRedeemCode> >; f(ret); break; } case Msg.Code.ListNoticeInfo: { var ret = Msg.FromJson <ListNoticeInfo>(json); var f = ctx as rpc_callback <Ret <ListNoticeInfo> >; f(ret); break; } case Msg.Code.ConfirmNoticeInfo: { var ret = Msg.FromJson <ConfirmNoticeInfo>(json); var f = ctx as rpc_callback <Ret <ConfirmNoticeInfo> >; f(ret); break; } case Msg.Code.DeleteNoticeInfo: { var ret = Msg.FromJson <DeleteNoticeInfo>(json); var f = ctx as rpc_callback <Ret <DeleteNoticeInfo> >; f(ret); break; } case Msg.Code.MarkAsReadNoticeInfo: { var ret = Msg.FromJson <MarkAsReadNoticeInfo>(json); var f = ctx as rpc_callback <Ret <MarkAsReadNoticeInfo> >; f(ret); break; } case Msg.Code.GetExploreInfo: { var ret = Msg.FromJson <GetExploreInfo>(json); var f = ctx as rpc_callback <Ret <GetExploreInfo> >; f(ret); break; } case Msg.Code.AddExploreChargeCount: { var ret = Msg.FromJson <AddExploreChargeCount>(json); var f = ctx as rpc_callback <Ret <AddExploreChargeCount> >; f(ret); break; } case Msg.Code.ReduceExploreTime: { var ret = Msg.FromJson <ReduceExploreTime>(json); var f = ctx as rpc_callback <Ret <ReduceExploreTime> >; f(ret); break; } case Msg.Code.ExploreStart: { var ret = Msg.FromJson <ExploreStart>(json); var f = ctx as rpc_callback <Ret <ExploreStart> >; f(ret); break; } case Msg.Code.ExploreViewAward: { var ret = Msg.FromJson <ExploreViewAward>(json); var f = ctx as rpc_callback <Ret <ExploreViewAward> >; f(ret); break; } case Msg.Code.ExploreEnd: { var ret = Msg.FromJson <ExploreEnd>(json); var f = ctx as rpc_callback <Ret <ExploreEnd> >; f(ret); break; } case Msg.Code.PuzzleStart: { var ret = Msg.FromJson <PuzzleStart>(json); var f = ctx as rpc_callback <Ret <PuzzleStart> >; f(ret); break; } case Msg.Code.PuzzleUpdateProcess: { var ret = Msg.FromJson <PuzzleUpdateProcess>(json); var f = ctx as rpc_callback <Ret <PuzzleUpdateProcess> >; f(ret); break; } case Msg.Code.PuzzleEnd: { var ret = Msg.FromJson <PuzzleEnd>(json); var f = ctx as rpc_callback <Ret <PuzzleEnd> >; f(ret); break; } case Msg.Code.ActiveNewCharacter: { var ret = Msg.FromJson <ActiveNewCharacter>(json); var f = ctx as rpc_callback <Ret <ActiveNewCharacter> >; f(ret); break; } case Msg.Code.KillCharacter: { var ret = Msg.FromJson <KillCharacter>(json); var f = ctx as rpc_callback <Ret <KillCharacter> >; f(ret); break; } case Msg.Code.GetDungeonRankingInfo: { var ret = Msg.FromJson <GetDungeonRankingInfo>(json); var f = ctx as rpc_callback <Ret <GetDungeonRankingInfo> >; f(ret); break; } case Msg.Code.GetDungeonRankingList: { var ret = Msg.FromJson <GetDungeonRankingList>(json); var f = ctx as rpc_callback <Ret <GetDungeonRankingList> >; f(ret); break; } case Msg.Code.GetPersonalRankingInfo: { var ret = Msg.FromJson <GetPersonalRankingInfo>(json); var f = ctx as rpc_callback <Ret <GetPersonalRankingInfo> >; f(ret); break; } case Msg.Code.GetPersonalRankingList: { var ret = Msg.FromJson <GetPersonalRankingList>(json); var f = ctx as rpc_callback <Ret <GetPersonalRankingList> >; f(ret); break; } case Msg.Code.GetThreadComment: { var ret = Msg.FromJson <GetThreadComment>(json); var f = ctx as rpc_callback <Ret <GetThreadComment> >; f(ret); break; } case Msg.Code.GetThreadHotComment: { var ret = Msg.FromJson <GetThreadHotComment>(json); var f = ctx as rpc_callback <Ret <GetThreadHotComment> >; f(ret); break; } case Msg.Code.GetHeroThreadId: { var ret = Msg.FromJson <GetHeroThreadId>(json); var f = ctx as rpc_callback <Ret <GetHeroThreadId> >; f(ret); break; } case Msg.Code.PostComment: { var ret = Msg.FromJson <PostComment>(json); var f = ctx as rpc_callback <Ret <PostComment> >; f(ret); break; } case Msg.Code.PraiseThread: { var ret = Msg.FromJson <PraiseThread>(json); var f = ctx as rpc_callback <Ret <PraiseThread> >; f(ret); break; } case Msg.Code.PraiseComment: { var ret = Msg.FromJson <PraiseComment>(json); var f = ctx as rpc_callback <Ret <PraiseComment> >; f(ret); break; } case Msg.Code.GetUserProperties: { var ret = Msg.FromJson <GetUserProperties>(json); var f = ctx as rpc_callback <Ret <GetUserProperties> >; f(ret); break; } case Msg.Code.SetUserProperties: { var ret = Msg.FromJson <SetUserProperties>(json); var f = ctx as rpc_callback <Ret <SetUserProperties> >; f(ret); break; } case Msg.Code.GetAchievementAward: { var ret = Msg.FromJson <GetAchievementAward>(json); var f = ctx as rpc_callback <Ret <GetAchievementAward> >; f(ret); break; } case Msg.Code.GetOperationActivityInfo: { var ret = Msg.FromJson <GetOperationActivityInfo>(json); var f = ctx as rpc_callback <Ret <GetOperationActivityInfo> >; f(ret); break; } case Msg.Code.GetActivtyAwardFisrtPay: { var ret = Msg.FromJson <GetActivtyAwardFisrtPay>(json); var f = ctx as rpc_callback <Ret <GetActivtyAwardFisrtPay> >; f(ret); break; } case Msg.Code.GetActivtyAwardSignInFirst7Day: { var ret = Msg.FromJson <GetActivtyAwardSignInFirst7Day>(json); var f = ctx as rpc_callback <Ret <GetActivtyAwardSignInFirst7Day> >; f(ret); break; } case Msg.Code.GetActivtyAwardSignIn30Day: { var ret = Msg.FromJson <GetActivtyAwardSignIn30Day>(json); var f = ctx as rpc_callback <Ret <GetActivtyAwardSignIn30Day> >; f(ret); break; } case Msg.Code.GetDungeonRule1: { var ret = Msg.FromJson <GetDungeonRule1>(json); var f = ctx as rpc_callback <Ret <GetDungeonRule1> >; f(ret); break; } case Msg.Code.GetDungeonRule2: { var ret = Msg.FromJson <GetDungeonRule2>(json); var f = ctx as rpc_callback <Ret <GetDungeonRule2> >; f(ret); break; } case Msg.Code.UseItem: { var ret = Msg.FromJson <UseItem>(json); var f = ctx as rpc_callback <Ret <UseItem> >; f(ret); break; } case Msg.Code.GetVipInfo: { var ret = Msg.FromJson <GetVipInfo>(json); var f = ctx as rpc_callback <Ret <GetVipInfo> >; f(ret); break; } case Msg.Code.VipYueKaMaterialGetAward: { var ret = Msg.FromJson <VipYueKaMaterialGetAward>(json); var f = ctx as rpc_callback <Ret <VipYueKaMaterialGetAward> >; f(ret); break; } case Msg.Code.PayGetCallbackUrl: { var ret = Msg.FromJson <PayGetCallbackUrl>(json); var f = ctx as rpc_callback <Ret <PayGetCallbackUrl> >; f(ret); break; } case Msg.Code.PayPrepare: { var ret = Msg.FromJson <PayPrepare>(json); var f = ctx as rpc_callback <Ret <PayPrepare> >; f(ret); break; } case Msg.Code.PayVerifyReceipt: { var ret = Msg.FromJson <PayVerifyReceipt>(json); var f = ctx as rpc_callback <Ret <PayVerifyReceipt> >; f(ret); break; } case Msg.Code.PayAppleVerifyReceipt: { var ret = Msg.FromJson <PayAppleVerifyReceipt>(json); var f = ctx as rpc_callback <Ret <PayAppleVerifyReceipt> >; f(ret); break; } case Msg.Code.PayVerifyOrder: { var ret = Msg.FromJson <PayVerifyOrder>(json); var f = ctx as rpc_callback <Ret <PayVerifyOrder> >; f(ret); break; } case Msg.Code.PayListOrder: { var ret = Msg.FromJson <PayListOrder>(json); var f = ctx as rpc_callback <Ret <PayListOrder> >; f(ret); break; } case Msg.Code.PayGooglePurchase: { var ret = Msg.FromJson <PayGooglePurchase>(json); var f = ctx as rpc_callback <Ret <PayGooglePurchase> >; f(ret); break; } case Msg.Code.PayGoogleConsume: { var ret = Msg.FromJson <PayGoogleConsume>(json); var f = ctx as rpc_callback <Ret <PayGoogleConsume> >; f(ret); break; } case Msg.Code.AccountLogin: { var ret = Msg.FromJson <AccountLogin>(json); var f = ctx as rpc_callback <Ret <AccountLogin> >; f(ret); break; } case Msg.Code.AccountLogout: { var ret = Msg.FromJson <AccountLogout>(json); var f = ctx as rpc_callback <Ret <AccountLogout> >; f(ret); break; } case Msg.Code.GM_ActivateUser: { var ret = Msg.FromJson <GM_ActivateUser>(json); var f = ctx as rpc_callback <Ret <GM_ActivateUser> >; f(ret); break; } case Msg.Code.GM_ResetUser: { var ret = Msg.FromJson <GM_ResetUser>(json); var f = ctx as rpc_callback <Ret <GM_ResetUser> >; f(ret); break; } case Msg.Code.GM_CreateItem: { var ret = Msg.FromJson <GM_CreateItem>(json); var f = ctx as rpc_callback <Ret <GM_CreateItem> >; f(ret); break; } case Msg.Code.GM_SetMyMoney: { var ret = Msg.FromJson <GM_SetMyMoney>(json); var f = ctx as rpc_callback <Ret <GM_SetMyMoney> >; f(ret); break; } case Msg.Code.GM_ResetJob: { var ret = Msg.FromJson <GM_ResetJob>(json); var f = ctx as rpc_callback <Ret <GM_ResetJob> >; f(ret); break; } case Msg.Code.GM_SetVipInfo: { var ret = Msg.FromJson <GM_SetVipInfo>(json); var f = ctx as rpc_callback <Ret <GM_SetVipInfo> >; f(ret); break; } default: { throw new System.Exception("Network: no such msg code: " + code.ToString()); } } }