skynet_sample登陆分析
2016-10-21 12:15:05 2 举报
Skynet_sample登陆流程分析
作者其他创作
大纲/内容
经过授权步骤后
Agent这时启动了client模块,和Auth一样,可以接收Client的消息
Manager 调用 skynet.newservice \"agent\"(★异步操作可能需要双重确认)
这时Auth和Client的连接已经自行断开
Hub向Auth发消息,shakehand(fd)
Client模块的逻辑在Client被设置了handlar之后,就可以使用。对每个收到的包,Client模块会调用handler里相应的回调函数。由于调用函数允许当时不返回,所以使用skynet.fork启动一个独立协程。只要消息执行完毕,无论成功或者异常,最终一般会返回结果并写入fd
启动Hub服务
Auth返回user_id给Hub,Hub保存fd和user_id的对应关系
由于Auth已经导入并初始化了Client模块,这时将socket fd交给Client,Client开始了接收事件包的循环。Client收包后的处理函数,在Auth服务里找。
Hub服务器包含socket模块,有新连接时回调Hub的方法
由于Hub依赖Auth和Manager服务,将它们都启动
可能需要客户端、Auth与第三方账户服务器交互,完成登陆行为
Client发送signup时,Auth服务保存了登陆状态,以便于检测重复登陆
0 条评论
下一页