学习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){}

转载于:https://www.cnblogs.com/big-zhou/p/4524810.html

SuperSocket+unity 网络笔记相关推荐

  1. 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)

    [Unity学习笔记]b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别) 自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难 ...

  2. Unity网络多玩家游戏开发教程(上册)

    Unity网络多玩家游戏开发教程(上册) 试读文档下载地址:http://pan.baidu.com/s/1jGwwxam Unity作为强大的游戏开发平台,为网络游戏的的开发提供大量的组件和API. ...

  3. Unity网络多玩家游戏开发教程第1章Unity自带网络功能

    Unity网络多玩家游戏开发教程第1章Unity自带网络功能 Unity拥有大量的第三方插件,专门提供了对网络功能的支持.但是,大部分开发者第一次接触到的还是Unity自带的网络功能,也就是大家经常说 ...

  4. Unity网络--HLAPI(2):Unity HLAPI NetworkManager与NetworkBehaviour的回调函数

    虽然当前的Unity游戏服务器模块即将被砍,不过作为当前最主流游戏引擎的一般性通用服务器架构,研究一下还是可以学习学习它的一些思想. Unity HLAPI既High Level API是相对于Low ...

  5. 网络笔记:路由选路原则

    网络笔记:路由选路原则 路由器选路遵守以下三个原则: 第一,最长掩码匹配原则:例如,查找去往192.168.1.1的路径时,发现路由表有如下两个表项,路由器会选择第一条路由转发,因为第一条的IP地址范 ...

  6. Unity学习笔记(4)-----粒子效果的实现

    Unity学习笔记(4)-–粒子效果的实现 一.效果展示 下面用若干张张动图展示效果: 大概就是这样,并不是很难. 实际效果要比图中的好一点(顺畅得多). 实现步骤 大致可以分为如下几个步骤,然后逐个 ...

  7. Unity 入门笔记 - 02 - 各种动画

    Unity 入门笔记 - 02 - 各种动画 前言:上一篇笔记记录了从零开始安装软件,到搭建最基本的游戏场景和角色,最后开始接触了脚本代码.对unity游戏引擎的工作方式有了基本的认知.接下来开始进一 ...

  8. Unity学习笔记1 简易2D横版RPG游戏制作(一)

    这个教程是参考一个YouTube上面的教程做的,原作者的教程做得比较简单,我先参考着做一遍,毕竟我也只是个初学者,还没办法完全自制哈哈.不过我之前也看过一个2D平台游戏的系列教程了,以后会整合起来,做 ...

  9. 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码

    [Unity学习笔记][Unity中文课堂教程] C#中级编程代码 最近想补一补C#基础,Unity官方的C#中级编程教程质量很高,于是开个帖子把跟着敲+记录了部分价讲解和我自己的理解的代码存在这 原 ...

最新文章

  1. 用一个比喻说明项目里各个成员的角色
  2. 使用git帮助多人开发
  3. 最新!中国内地大学 ESI 排名出炉:362 所高校上榜!
  4. 三十二、从0到1教你用Scrapy来爬取整站天气网
  5. boost::tiernan_all_cycles用法的测试程序
  6. (转)快速统计二进制中1的个数
  7. js打开本地文件夹_vue + ArcGIS 地图应用系列一:arcgis api本地部署(开发环境)
  8. CF741C Arpa’s overnight party and Mehrdad’s si
  9. 境内外赌博网站被捣毁,程序员被抓!!
  10. macos 字体_巧用 iTerm2 zsh oh-my-zsh 打造炫酷的 MacOS 终端环境
  11. Linux下Qt5: QMediaRecorder的问题,以及使用QCamera相关类进行摄像头视频采集
  12. (MathType)公式编号(1)和(2a)(2b)混编
  13. RocketMQ系列实战
  14. 谷歌浏览器添加插件——json
  15. recover 没有捕获异常_Go的异常处理defer, panic, recover以及错误处理
  16. Intel Atom移动处理器惨败,还被用户和经销商起诉
  17. 谷歌身份验证器验证码不对怎么回事_兼容谷歌验证器,开源的动态验证码小程序了解一下
  18. uni-app 全局变量的实现
  19. 《当杜月笙被人骗惨之时,突然看到了这世界的一个大秘密-雾满拦江》
  20. 中国膨润土市场消费状况与投资盈利预测报告(2022-2027年)

热门文章

  1. JZOJ 1322. 硬币游戏
  2. 查看PLC IP 端口_三种方法实现以太网远程访问西门子PLC!
  3. 2017年10月07日普及组 单元格
  4. AtCoder AGC032F One Third (组合计数、DP、概率期望、微积分)
  5. AtCoder AGC007E Shik and Travel (二分、DP、启发式合并)
  6. BZOJ 2806 Luogu P4022 [CTSC2012]Cheat (广义后缀自动机、DP、二分、单调队列)
  7. java byte 判断相等_转发收藏 | 史上最全Java面试题+面试网站推荐!(含答案)
  8. git submoule 更新_微软Surface Duo双屏手机键盘更新:支持分体式输入
  9. 如何断开mongodb数据库连接_如何连接远程mongodb数据库
  10. c++ 取机器码_吉林c系列防倒灌风帽怎么卖,流线型通风器可定制