刘丹冰
刘丹冰
> > @EquentR 看了下,修复的问题和思路没问题,我之前欠考虑了,主要问题抽象层`ILogger()` 增加了接口,确实存在无法向下兼容的问题,可能会导致升级用户编译的问题,这块看看如何做到用户无感知,或者兼容写法,容我再思考思考哈~ > > 我看是二月份的消息了,想说一下我的看法,这里是否可以通过将新增的方法拆出来,独立出一个 control 接口来解决呢?默认实现使用 zlog 的日志级别进行判断,用户实现接口就是可选的,可以在之后自行选择是否去重新实现接口去设置这个 controller。 @Rinai-R 确实是一个好办法
https://www.yuque.com/aceld/tsgooa/cx01fget6ka3wep1 关了debug开关,再试试看看 @EquentR
@EquentR 嗯,我看了下,如果是消耗在之前的 `hex.EncodeToString()` 那确实需要改动的范围有点大,大致思考了下,需要动以下几个步骤: 1、给zlog提供获取当前日志级别的方法,比如`zlog.Ins().DebugEnabled()` 来判断当前配置的Debug级别。 2、梳理所有`DebugF()` 中有 ``hex.EncodeToString()` 形参的调用地方。 3、将梳理到的范围代码改成如下写法: ```go if zlog.Ins().IsDebugEnabled() { dataStr := hex.EncodeToString(request.GetData()) zlog.Ins().DebugF("SendMsgToTaskQueue-->%s", dataStr) } ```
欢迎和期待有意愿的开发者,优化此问题,提交PR~
@pingqiang806796422 `Run()` 有一段注释,这个代码是注释掉了,还是应该有的?
嗯,这个是ws 的问题,tcp的应该不会出现, https://github.com/aceld/zinx/pull/333 这个pr先merge了,看是否还能复现 @pingqiang806796422
你 先拉下 master 分支,看能否还复现
@pingqiang806796422 目前还不支持单向,一旦开启就是双向,如果想只做单向处理,可以将 一方的OnRemoteNotAlive() 方法设置为不处理,忽略心跳消息。
@pingqiang806796422 `SetHeartbeatFunc()` 可以自定义一方的心跳检测,不发送心跳包。
```go func (h *HeartbeatChecker) check() (err error) { if h.conn == nil { return nil } if !h.conn.IsAlive() { h.onRemoteNotAlive(h.conn) } else { if h.beatFunc != nil { err =...