当前位置: 代码迷 >> 综合 >> CustomPlugins:Network
  详细解决方案

CustomPlugins:Network

热度:88   发布时间:2023-11-24 00:54:00.0

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源代码一致。

 

这样再根据项目的具体情况,简单设计一个请求单例类。

  相关解决方案