Support connect on socket create
What problem does this PR solve?
Issue Number:
Problem Summary:
目前直接使用client Socket,存在两个问题:
- 不能先连接对端,只能在第一次写入的时候连接。
- 虽然可以先通过tcp connect获取一个fd,再通过SocketOptions.fd创建一个Socket对象。但是这种方式不支持ssl。
What is changed and the side effects?
Changed:
支持在Socket::Create中连接对端,同时支持ssl。
Side effects:
-
Performance effects(性能影响):
-
Breaking backward compatibility(向后兼容性):
Check List:
- Please make sure your changes are compilable(请确保你的更改可以通过编译).
- When providing us with a new feature, it is best to add related tests(如果你向我们增加一个新的功能, 请添加相关测试).
- Please follow Contributor Covenant Code of Conduct.(请遵循贡献者准则).
LGTM
Socket在Create中建连成功后,Address获取Socket指针之前,连接有可能出错,导致Socket被回收,健康检查无法被使能。所以,将持有健康检查引用提前到Create中,并将健康检查引用持有和释放的逻辑封装到函数中,方便使用。
@chenBright 和主干冲突了
@chenBright 和主干冲突了
@wwbmmm done
LGTM
解决与master的冲突
@chenBright 又冲突了。。
@wwbmmm done,rebase解决冲突。