zoukankan      html  css  js  c++  java
  • SuperSocket+unity 网络笔记

    学习SuperSocket 必须要注意的 代码是

     static void Main(string[] args)
            {   
                WebSocketServer appServer = new WebSocketServer();
                
                if (!appServer.Setup(2000)) //端口
                {
                    Console.WriteLine("端口错误!");
                    Console.ReadKey();
                    return;
                }
    
                appServer.NewSessionConnected += new SessionHandler<WebSocketSession>(appServer_NewClientConnected); 
                appServer.NewMessageReceived += new SessionHandler<WebSocketSession, string>(appServer_NewMessageReceived); 
                appServer.SessionClosed += new SessionHandler<WebSocketSession, CloseReason>(appServer_SessionClosed); 
    
                if (!appServer.Start())
                {
                    Console.WriteLine("启动错误");
                    Console.ReadKey();
                    return;
                }
    
                Console.WriteLine("服务器启动成功, 按 'q' 退出服务器!");
                while (Console.ReadKey().KeyChar != 'q')
                {
                    Console.WriteLine();
                    continue;
                } 
                appServer.Stop();
                Console.WriteLine();
                Console.WriteLine("服务器关闭");
                Console.ReadKey();
            }

    学习 unity 通讯 必须注意的代码是

           // 服务器IP地址和端口号
            ServerAdress = "ws://192.168.1.104:2000/"; 
            websocket = new WebSocket(ServerAdress);
            websocket.Open();
        public void addlistenerSocket()
        { 
            _SocketModel.websocket.Opened += new EventHandler(websocket_Opened);
            _SocketModel.websocket.Error += new EventHandler<ErrorEventArgs>(websocket_Error);  
            _SocketModel.websocket.Closed += new EventHandler(websocket_Closed);
            _SocketModel.websocket.MessageReceived += new EventHandler<MessageReceivedEventArgs>(websocket_MessageReceived); 
        } 
     //登录 发送监听
        private void websocket_Opened(object sender, EventArgs e)
        { 
           JsonData message = new JsonData(); 
           message["Agreement"] = Agreement.user_no_return; 
           message["username"] = _SocketModel.PlayName;  
           _SocketModel.websocket.Send(message.ToJson());//这个是发到消息端
        }
    
        //关闭监听
        public virtual void websocket_Closed(object sender, EventArgs e)
        {
        }
        //接收监听
        public void websocket_MessageReceived(object sender, MessageReceivedEventArgs e)
        { 
            JsonData jsontext = JsonMapper.ToObject(e.Message);  //转化成json格式数据    
            string Agreements = jsontext["Agreement"].ToString();
            switch (Agreements)
            {
                case Agreement.user_offline_return://接收到用户下线通知 
                    user_offline_return(jsontext);
                    break;
                case Agreement.user_chat_return://接收聊天信息 
                    user_chat_return(jsontext);
                    break;
                case Agreement.user_battle_return://接收到对战通知
                    user_battle_return(jsontext);
                    break;
                case Agreement.user_information_return://接收到对方用户信息
                    user_information_return(jsontext);
                    break;
                case Agreement.user_trading_return://接收到用户交易信息
                    user_trading_return(jsontext);
                    break;
                case Agreement.user_trading_cancel_return://接收到用户交易信息取消
                    user_trading_cancel_return(jsontext);
                    break;
                case Agreement.user_trading_confirm_one_return://接收到用户交易信息 确认1
                    user_trading_confirm_one_return(jsontext);
                    break;
                case Agreement.user_trading_confirm_two_return://接收到用户交易信息 确认2
                    user_trading_confirm_two_return(jsontext);
                    break;
                case Agreement.user_trading_confirm_three_return://接收到用户交易信息 确认3
                    user_trading_confirm_three_return(jsontext);
                    break;
                case Agreement.user_trading_confirm_final_return://接收到用户交易信息 最后确认
                    user_trading_confirm_final_return(jsontext);
                    break;
    
                default: break;
            }
        }
    
         
        public virtual void user_offline_return(JsonData jsontext)
        { 
        }
        public virtual void user_chat_return(JsonData jsontext)
        {
        }
        public virtual void user_battle_return(JsonData jsontext)
        {
        }
        public virtual void user_information_return(JsonData jsontext)
        {
        }
        public virtual void user_trading_return(JsonData jsontext)
        {
        }
        public virtual void user_trading_cancel_return(JsonData jsontext)
        {
        }
        public virtual void user_trading_confirm_one_return(JsonData jsontext)
        {
        }
        public virtual void user_trading_confirm_two_return(JsonData jsontext)
        {
        }
        public virtual void user_trading_confirm_three_return(JsonData jsontext)
        {
        }
        public virtual void user_trading_confirm_final_return(JsonData jsontext)
        {
        } 
        void Update()
        {
            if (JsonList.Count > 0)
            {
                JsonData mes = JsonList.Dequeue();
                SplitDisposal(mes);
            }
        }
    
        //服务端返回后,数据赋值这里处理
        void SplitDisposal(JsonData mes)
        { 
            String Agreementstr = mes["Agreement"].ToString();
            switch (Agreementstr)
            {
                case Agreement.user_chat_return:
    
                    print(mes["username"] + "=====" + mes["message"] + "---" + mes["for"]); 
                    break;
    
                default: break;
            
            }
        }
       
        //根据需要 调用以下方法 
        public override void user_chat_return(JsonData jsontext)
        { 
            base.user_chat_return(jsontext);//特殊字符提前处理 
            print(jsontext["username"] + "=====" + jsontext["message"] + "---" + jsontext["for"]); 
            JsonList.Enqueue(jsontext);
            
        }
     
        public override void user_battle_return(JsonData jsontext)
        {
        }
        public override void user_information_return(JsonData jsontext)
        {
        }
  • 相关阅读:
    jquery 根据 option 的 text 定位选中 option
    Mac 打开任务管理器 关闭程序
    什么是 IaaS、PaaS、SaaS
    网站 A/B Test
    PHP 设计模式之策略模式
    mybatis-plus的使用 ------ 入门
    IEDA和svn上同步及更新代码【我】
    springBoot 项目测试【我】
    Idea检出项目配置【我】
    IDEA常用的风格设置
  • 原文地址:https://www.cnblogs.com/big-zhou/p/4524810.html
Copyright © 2011-2022 走看看