We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
我一直在用libuv做开发 本来很想尝试改下然后嵌入到我们的项目。但是发现框架影响太大了。
不知道是不是我没太理解清楚还是别的原因
个人感觉应该实现应该只提供好连接管理就行了,不要在上面再做一层libuv的封装。 如果再做一层libuv的封装,把uv_run都隐藏了,这样对其他已有libuv的项目来说结构影响太大?
个人觉得理想的方式是:
服务器:
uv_loop *loop; kcpuv_server_init(loop, kcp_server); kcpuv_bind(kcp_server , addr); kcpuv_listen(kcp_server); kcpuv_server_start(kcp_server , on_peer_connect_handle); void on_peer_connect_handle(kcp_server) { kcp_client *peer = kcpuv_peer_init(loop); kcpuv_accept(kcp_server, peer); kcpuv_start_read(peer, on_data_handle); }
客户端:
kcpuv_client_init(loop, kcp_client); kcpuv_connect(kcp_client, addr); kcpuv_client_start(kcp_server , on_client_connect_handle); void on_client_connect_handle(kcp_client) { kcpuv_start_read(kcp_client, on_read_handle); }
另外,libuv本身是C89,我觉得如果是要做这种封装,最好也是用C89
The text was updated successfully, but these errors were encountered:
不太清楚你的具体需求,这里是为了把LIBUV和KCP弄在一起。跟封装LIBUV没什么关系。
Sorry, something went wrong.
嗯,我的意思是,你这样写暴露给别人用的话,已经把libuv原有的接口全部隐藏了 真正别人想用到libuv其他的接口反而拿不到了 比如说 loop是由你自己的模块生成的,而不是外部提供的
uv_run这个已经被你的kcpuv_run给封装掉了,使用者不能自己直接调用uv_run 这样代码改动太大 如果别人要用你的库,就得替换掉原有项目的uv_run 个人觉得不应该入侵别人的代码去做封装
不知道我有没有没说清楚
我先读一下connection管理那块的代码 改天有空了实现一版我说的方式
理解,你的需求如果是那样的话,可能就需要改改代码了。姑且把这个当做一个示例吧,反正也没多少代码。
No branches or pull requests
我一直在用libuv做开发
本来很想尝试改下然后嵌入到我们的项目。但是发现框架影响太大了。
不知道是不是我没太理解清楚还是别的原因
个人感觉应该实现应该只提供好连接管理就行了,不要在上面再做一层libuv的封装。
如果再做一层libuv的封装,把uv_run都隐藏了,这样对其他已有libuv的项目来说结构影响太大?
个人觉得理想的方式是:
服务器:
客户端:
另外,libuv本身是C89,我觉得如果是要做这种封装,最好也是用C89
The text was updated successfully, but these errors were encountered: