客户端:
Kbengine针对Unity3d专门制作了插件 https://github.com/kbengine/kbengine_unity3d_plugins
插件在安装之后,会在messages.cs自动生成配置静态代码。静态代码是根据messages_fixed_defaults.xml形成的
函数id与函数名对应,比如1963行的505对应Client_onLoginBaseappFailed,到xml文件中寻找
UI.cs
可以看到登录是调用了login()函数
实际上是调用了KBEngine.Event.fireIn(“login”)函数,将事件转给插件来处理
在KBEngine.cs中KBEngineApp已经registerIn了一系列函数
这时就由KBEngineApp的login()来处理登录
Login()调用login_loginapp,走到第552行
connectTo()会建立一个socket,与参数中所给的ip和port进行连接,函数中有一个回调函数的参数onConnectTo_loginapp_callback 。
387这里的Messages.messages["Loginapp_hello"]就是由插件在messages.cs自动生成配置静态代码
403行将消息发送给服务端之后,服务端会根据id来做相应的处理,这就是之后再说。现在只要知道服务端会回调客户端这边的Client_onHelloCB()
579调用login_loginapp(false)
同hello一样,这里会发送消息给服务端,告诉服务端我要调用你的Loginapp_login,也就是调用Loginapp::login()。从而完成登录操作。
至于服务端是怎么收到客户端发来的调用请求以及怎么处理这些请求,看下一篇