既然已经写完了相关的服务器处理类,那么我们就来搭建客户端测试一下。
打开我们的unity3d,然后新建一个c#脚本,取名为MainClient。
public class MainClient : MonoBehaviour{
private const string HOST = "127.0.0.1";
private const int PORT = 8080;
public static MainClient instance;
public static TcpClient client;
void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(this.gameObject);
}
}
void Start()
{
if (client == null)
{
Connect();
}
}
void Update()
{
}
void OnApplicationQuit()
{
client.Close();
}
public void Connect()
{
client = new TcpClient();
try{
client.Connect(HOST,PORT);
}catch(Exception e){
Debug.LogException(e);
client.Close();
}
}
}
然后再Hierarchy窗口新建一个gameobject,将MainClient赋给它,将之做成prefab。
好了,我们先启动服务器,再启动我们的unity3d工程,会发现呢
服务器会跳转到之前我们写的处理类ServerHandler的方法,public void channelActive(ChannelHandlerContext ctx),打印这句话,channel.id()就是唯一标识该客户端,感兴趣的童鞋可以去学习netty的源代码。
当我们断开unity3d客户端,就会调用public void channelInactive(ChannelHandlerContext ctx)
好了测试相关的已经成功了,如果有什么问题可以留言给我,这个是我服务器写到一定程度才写这篇博文的,可能有步骤不对,你们尽管指出来。