chisheng
chisheng
is_socket_alive() is always return ture even though peer closed TLS and TCP connecton, I dont konwn how to detect whether TLS connection is alived.
祁工: 嵌入式设备内存不大,所以特别关注内存消耗,还是以自带person为例,如果name的大小是10M,那么在服务端调用处理函数的时候,会瞬时消耗40M内存,原因是unpack调用msgpack::unpack时使用的默认参数,object_handle对str类型数据是复制不是引用,我看现在的流程,buffer的生命周期是大于object_handle的,能不能使用下边的接口,让unpack_reference_func固定返回true,强制使用引用模式,这样消耗的内存就是20M了。我测试了下,没有发现问题。 void unpack( object_handle& result, const char* data, std::size_t len, unpack_reference_func f = nullptr, void* user_data = nullptr, unpack_limit const& limit = unpack_limit());
祁工: 我看下了订阅发布模式的实现方式,如果发布者发布速度远大于消费者,数据会缓存在链接里的数据队列write_queue_,时间久了会把内存耗光的吧,能增加每个链接发送缓存队列的最大值限制么?