效果如下,admin可以正常管理agent了,并测试shell、socks功能均正常,后续多投入一些实战项目中测试下
这里通过心跳包的实现总结下其他数据结构的协议交互逻辑。
发送方通过Dispatch消息处理函数序列化数据(protocol.ConstructMessage)发送消息(message.SendMessage),接收方通过handleDataFromUpstream或handleDataFromDownstream进行监听接收,调用protocol.DestructMessage进行接收和反序列化处理,然后判断消息类型,写入channel,由相应的接收方消息处理函数进行处理并响应。
这里通过心跳包的实现总结下其他数据结构的协议交互逻辑。
发送方通过Dispatch消息处理函数序列化数据(protocol.ConstructMessage)发送消息(message.SendMessage),接收方通过handleDataFromUpstream或handleDataFromDownstream进行监听接收,调用protocol.DestructMessage进行接收和反序列化处理,然后判断消息类型,写入channel,由相应的接收方消息处理函数进行处理并响应。