以下是简短的版本: 有没有一种方法可以清空围棋频道,而不需要重新创建它,也不需要循环通过它?

原因:

现在,当传输被重置/重新连接时,我想"清空"额外的通道,以确保没有任何延迟的其他重置请求会导致事物再次重新连接.

推荐答案

您描述的内容本质上是活泼的,因为可能存在重新连接通道的合法请求.与其试图耗尽通道,我建议您跟踪时间.

在你的重新连接频道上,公布时间.重新连接完成后,请记下时间.在使用重新连接通道时,丢弃所有比上次重新连接更早的消息.

实现这一点的另一个更为一致的解决方案是将重新连接通道设置为布尔值.发送"true"以重新连接.重新连接完成后,发布"false".然后使用该通道,直到发现"false".

Go相关问答推荐

如何使用Promela建模语言对Golang RWLock进行建模

在Mac中使用uname获取处理器体系 struct 时,在为AMD64构建Go二进制时出现错误结果

允许在 struct 中使用复合作为函数参数

不接受来自 stdin 的重复输入

如何将验证器标记添加到嵌套字段

当我的 go build 成功时,如何修复我的 docker build 失败? Dockerfile 包括 go mod 下载

helm :将 YAML 转换为 JSON 时出错:yaml:第 xx 行:未找到预期的密钥

Apache Beam 在 Go 中从 PCollection 中 Select 前 N 行

使用图像解码 JPEG 时 colored颜色 不正确.解码并写入 PDF?

接受通道和切片的通用函数

如何将具有嵌入式 struct 的 struct 展平为 json

Golang - 将 [8] 布尔转换为字节

函数超时和 goroutine 泄漏

无法在 GORM 中排序

golang jwt.MapClaims 获取用户ID

在 Go 中将指针传递给函数的正确方法是什么,以便我可以读取和/或修改指针表示的值?

为什么在 goroutine 中声明时,benbjohnson/clock 模拟计时器不执行?

从 map 返回空数组而不是空字符串数组

comparable和any有什么区别?

Gin中测试模式有什么用