NetClient:TCP网络客户端
客户端在Unity中使用,服务端在控制台中使用。
Unity客户端的使用:
NetClient是跨场景不销毁的。
在做一个脚本用来启动客户端:
就两个字段服务端IP地址和网络端口号。
看启动脚本代码里面:
我们看看日志:
DoConnect:NetClient执行连接工作。
NetClient.DoConnect on 127.0.0.1:8888:NetClient将要连接的服务器。
Connect[0] to server 127.0.0.1:8888:NetClient在什么时间开始连接服务器。
OnGameServerConnect》》》:已连接上服务器的网络模块的客户端状态信息监听。
OnHelloWorldResponse: HelloWorld My Client!:我们Start最后一步使用HelloWorldService网络服务模块发送给服务端一条请求信息"HelloWorld My Server!","HelloWorld My Client!"是服务端收到请求后发送给我们客户端的一条对应的响应信息。
Unity客户端:
Console服务端:
我们来看看网络信息库:
这一个dll工程,依赖网络通信公共库和谷歌通信协议库。
网络消息类和字段的定义,都是一组,一个请求一个响应:
将消息类型添加到网络消息协议包装中,请求和响应不要放乱了:
再将网络消息分发器的字段进行添加和判断:
然后打包成dll添加给服务端和客户端。
我们再看服务端的网络模块:
最主要的业务处理:
客户端的网络服务模块:
WebSocketServer和WebSocketClient
WEB的TCP服务端和客户端。
Server设置:
永不销毁:默认设定,跨场景不销毁的资源。
服务地址:服务器设定的地址。
Awake启动:运行起Awake是否自动服务启动。
日志打印:交互日志显示。
事件监听依次是:
服务启动时、服务关闭时、新客户端连接时、客户端发来信息时、客户端离开时。
客户端设置:
永不销毁和服务地址以及日志打印同上。
Start连接:运行起Start是否自动连接指定地址的服务器。
异步操作:是否执行异步操作,默认是同步。
事件监听依次是:
连接上服务器时、与服务器断开连接时、接收到服务端信息时、 发生错误时。
NetworkHttp
这个是使用的RestSharp库执行的,目的是为了和Postman源代码一致。
这样再根据项目的具体情况,简单设计一个请求单例类。