跟诸子学游戏 学习服务器4
学习ET(https://github.com/egametang/ET)框架需要明白的概念:
线程间的通信:SynchronizationContext https://www.cnblogs.com/lzxianren/p/SynchronizationContext.html
程序集引用: https://blog.csdn.net/zhenghongzhi6/article/details/78874580
反射机制,mono跨平台等
目前我学习这个服务器需要的东西如下:
VisualStudio 2017:选择的组件如下
VS1 VS2 VS3Unity3d2018(破解版)我也支持正版,但是太贵了,比我工资都高,实在支持不起来。请自行下载,console pro 3挺好用,推荐给大家
U3D1mongodb数据库 可视化工具 studio 3T https://www.mongodb.com/download-center/v2/cloud?from=dcv1 请自行下载
https://github.com/egametang/ET 请自行下载ET框架。
新建场景 新建预制体 前端代码复制UILogin中的代码 添加UI类型 后端代码添加协议在ET-master\Proto文件夹下 打开服务器代码1 打开服务器代码2连接服务器正确姿势:
c#-mongodb连接出错:MongoDB.Driver.MongoAuthenticationException: Invalid credentials for database...
原因:可能没有按照正确的方式写链接字符串
连接mongodb字符串:
(1)需要用户名密码验证的:mongodb://uname:pwd@127.0.0.1:27017
uname为用户名,pwd为密码。
(2)不需要用户名密码验证的:mongodb://127.0.0.1:27017
在,unity下的Tool工具下的命令行工具选择LocalAllServer.txt
配置服务器 服务器登录回调代码做好以上,ET框架已入门
ps:①:微软的API 在一个类中的方法一般以 xxxCompleted 为模板的方法,是一个delegate,需要 += method 操作的,一般异步完成之后回调这个方法,这样的模式称之为基于事件的模式。②:SynchronizationContext ctx = SynchronizationContext.Current;一个线程一个SynchronizationContext 里面有send/post方法,可以在异步线程方法中调用send/post回调到SynchronizationContext 所在的线程执行。如果是基于多线程并发执行之后,需要对结果做排序处理,则要对send/post进行重写,在里面对结果重新排序,将事件封装在集合里面,在外部一直调用集合里面的事件,调用之后则移除事件,使用ConcurrentQueue安全队列最好。