学习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. antlr.collections.AST.getLine()I问题的起因及解决
  2. 南京大学教授施斌及其团队—— 光纤变“神经” 大地能感知
  3. vista 文件夹提升权限
  4. SAP固定资产相关的一些表
  5. ActiveReports中如何在后台导出运行时绑定数据源报表
  6. mysql timstamp_DB_MySQL_日期类型讲解_DATETIME_DATE_TIMESTAMP
  7. asp.net 6中的mini api和mvc api性能对比
  8. q7goodies事例_Java 8 Friday Goodies:轻松派本地缓存
  9. 程序员为什么想进大厂,看看年终奖你们就知道了
  10. 去哪儿-03-index-swiper
  11. 转(ASP.NET页面缓存)
  12. Time complexity analysis of algorithms
  13. Python学习笔记(6) xml转换为excel
  14. 生产用计算机房噪音应小于,机房建设规范标准要求
  15. Ultra Edit中编辑并一键运行Ansys命令流
  16. sql中多表连接查询——自连接
  17. codebook实现源码
  18. 3. mysql-视图
  19. yum是干什么的_linux下的yum命令详解
  20. 中国艺术孙溟㠭书法《觉》

热门文章

  1. 使用AndroidStudio创建自定义gradle插件并被引用实战例子
  2. JZOJ 5266. number
  3. python 编译函数_在Python的Django框架中编写编译函数
  4. python正则表达式修饰符_python正则表达式,看完这篇文章就够了...
  5. 2019年, VQA论文汇总
  6. linux隐藏软件程序,如何使用GNOME Shell隐藏的屏幕录像工具
  7. linux中挂载系统光盘,linux下挂载光盘
  8. python中函数的调用_慢步python,编程中函数的概念,python中函数的声明和调用
  9. ccf报数游戏java,CCF 201712-2 游戏 《超越自我,攀登顶峰》
  10. Cauchy-Schwarz Inequality for Integrals for any two functions clarification