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){}
转载于:https://www.cnblogs.com/big-zhou/p/4524810.html
SuperSocket+unity 网络笔记相关推荐
- 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)
[Unity学习笔记]b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别) 自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难 ...
- Unity网络多玩家游戏开发教程(上册)
Unity网络多玩家游戏开发教程(上册) 试读文档下载地址:http://pan.baidu.com/s/1jGwwxam Unity作为强大的游戏开发平台,为网络游戏的的开发提供大量的组件和API. ...
- Unity网络多玩家游戏开发教程第1章Unity自带网络功能
Unity网络多玩家游戏开发教程第1章Unity自带网络功能 Unity拥有大量的第三方插件,专门提供了对网络功能的支持.但是,大部分开发者第一次接触到的还是Unity自带的网络功能,也就是大家经常说 ...
- Unity网络--HLAPI(2):Unity HLAPI NetworkManager与NetworkBehaviour的回调函数
虽然当前的Unity游戏服务器模块即将被砍,不过作为当前最主流游戏引擎的一般性通用服务器架构,研究一下还是可以学习学习它的一些思想. Unity HLAPI既High Level API是相对于Low ...
- 网络笔记:路由选路原则
网络笔记:路由选路原则 路由器选路遵守以下三个原则: 第一,最长掩码匹配原则:例如,查找去往192.168.1.1的路径时,发现路由表有如下两个表项,路由器会选择第一条路由转发,因为第一条的IP地址范 ...
- Unity学习笔记(4)-----粒子效果的实现
Unity学习笔记(4)-–粒子效果的实现 一.效果展示 下面用若干张张动图展示效果: 大概就是这样,并不是很难. 实际效果要比图中的好一点(顺畅得多). 实现步骤 大致可以分为如下几个步骤,然后逐个 ...
- Unity 入门笔记 - 02 - 各种动画
Unity 入门笔记 - 02 - 各种动画 前言:上一篇笔记记录了从零开始安装软件,到搭建最基本的游戏场景和角色,最后开始接触了脚本代码.对unity游戏引擎的工作方式有了基本的认知.接下来开始进一 ...
- Unity学习笔记1 简易2D横版RPG游戏制作(一)
这个教程是参考一个YouTube上面的教程做的,原作者的教程做得比较简单,我先参考着做一遍,毕竟我也只是个初学者,还没办法完全自制哈哈.不过我之前也看过一个2D平台游戏的系列教程了,以后会整合起来,做 ...
- 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码
[Unity学习笔记][Unity中文课堂教程] C#中级编程代码 最近想补一补C#基础,Unity官方的C#中级编程教程质量很高,于是开个帖子把跟着敲+记录了部分价讲解和我自己的理解的代码存在这 原 ...
最新文章
- antlr.collections.AST.getLine()I问题的起因及解决
- 南京大学教授施斌及其团队—— 光纤变“神经” 大地能感知
- vista 文件夹提升权限
- SAP固定资产相关的一些表
- ActiveReports中如何在后台导出运行时绑定数据源报表
- mysql timstamp_DB_MySQL_日期类型讲解_DATETIME_DATE_TIMESTAMP
- asp.net 6中的mini api和mvc api性能对比
- q7goodies事例_Java 8 Friday Goodies:轻松派本地缓存
- 程序员为什么想进大厂,看看年终奖你们就知道了
- 去哪儿-03-index-swiper
- 转(ASP.NET页面缓存)
- Time complexity analysis of algorithms
- Python学习笔记(6) xml转换为excel
- 生产用计算机房噪音应小于,机房建设规范标准要求
- Ultra Edit中编辑并一键运行Ansys命令流
- sql中多表连接查询——自连接
- codebook实现源码
- 3. mysql-视图
- yum是干什么的_linux下的yum命令详解
- 中国艺术孙溟㠭书法《觉》
热门文章
- 使用AndroidStudio创建自定义gradle插件并被引用实战例子
- JZOJ 5266. number
- python 编译函数_在Python的Django框架中编写编译函数
- python正则表达式修饰符_python正则表达式,看完这篇文章就够了...
- 2019年, VQA论文汇总
- linux隐藏软件程序,如何使用GNOME Shell隐藏的屏幕录像工具
- linux中挂载系统光盘,linux下挂载光盘
- python中函数的调用_慢步python,编程中函数的概念,python中函数的声明和调用
- ccf报数游戏java,CCF 201712-2 游戏 《超越自我,攀登顶峰》
- Cauchy-Schwarz Inequality for Integrals for any two functions clarification