我正在尝试在 GO 中实现 websocket 服务器。该服务器将负责处理大量的 websocket 连接。我浏览了各种博客文章,解释了如何利用 epoll 来避免每个连接产生 1 个 read go 例程,它确实减少了大量内存占用,但我没有与之相关的问题。
在这种情况下我如何支持写入连接?我是否为每个连接创建 1 个写 go-routine?我是不是只有在有东西要写的时候才创建一个 goroutine,在这种情况下,我如何防止多个 write goroutine 创建?
我们在客户端有强大的防火墙设置,我们需要每 10 秒向客户端发送一次 PING 以保持连接有效。这里的问题是我们将为每个客户端读取相应的 PONG 消息。 epoll 方法听起来仍然有效吗?还是我们应该为每个连接创建一对读/写 goroutine?
非常感谢任何帮助