Ejemplo n.º 1
0
        private void HandOut(AppMsg appMsg)
        {
            switch ((CMD)appMsg.cmd)
            {
            case CMD.HOTARTICLECOVERINFO:
                //Common.store.dispatcher.dispatch(new HotListAction(appMsg.rspHotList.article_cover_list));
                break;

            case CMD.SEARCHRESULT:
                Debug.Log("收到");
                Common.store.dispatcher.dispatch(new SearchReasultAction(appMsg.rspSearchList.article_cover_list, appMsg.rspSearchList.offcial_account_list));

                return;

                ;

            case CMD.ARTICLECONTENT:
                break;

            case CMD.ARTICLECOVERANDOA:
                break;

            default:
                break;
            }
        }
Ejemplo n.º 2
0
 public void AddMsg(AppMsg msg)
 {
     //注意多线程从操作
     lock (lockstr)
     {
         msgQueue.Enqueue(msg);
     }
 }
Ejemplo n.º 3
0
 public void Update()
 {
     if (NetSvc.instance.msgQueue.Count > 0)
     {
         //这里采用的是收集多线程的信息
         //在单线程中处理,所以没有接受后马上发送
         lock (NetSvc.lockstr)
         {
             AppMsg appMsg = NetSvc.instance.msgQueue.Dequeue();
             HandOut(appMsg);
         }
     }
 }
Ejemplo n.º 4
0
        private void ReceiveBodyCallback(IAsyncResult ar)
        {
            try
            {
                int count = clientSocket.EndReceive(ar);
                if (count > 0)
                {
                    dmsg.bodyIndex += count;
                    if (dmsg.bodyIndex < dmsg.bodyLen)
                    {
                        StartBody();
                    }
                    else
                    {
                        //处理 dmsg.body

                        string str = Encoding.UTF8.GetString(dmsg.body);
                        Debug.Log("-->" + str);

                        AppMsg msg = JsonConvert.DeserializeObject <AppMsg>(str);

                        //TODO 接收完毕提醒
                        NetSvc.instance.AddMsg(msg);

                        dmsg.ResetData();

                        StartHead();
                    }
                }
                else
                {
                    //TODO 关闭Socket
                }
            }
            catch (Exception e)
            {
                //TODO 关闭Socket
                Debug.Log(e);//TODO 客户端提示
            }
        }
Ejemplo n.º 5
0
 public void Send(AppMsg msg)
 {
     sedthread = new Thread(client.SendMsg);
     sedthread.Start(msg);
 }