使用go WebSocket防止连接的多个写入程序

使用go WebSocket防止连接的多个写入程序,go,websocket,epoll,gorilla,Go,Websocket,Epoll,Gorilla,我正在尝试在GO中实现websocket服务器。此服务器将负责处理大量websocket连接。我浏览了各种博客文章,解释了如何利用epoll来避免每个连接产生1个read-go例程,它确实大大减少了内存占用,但我没有什么相关问题 在这种情况下,我如何支持写到连接?我是否为每个连接创建一个写go例程?我是否只在有东西要写时才创建goroutine,在这种情况下,如何防止多个write go例程的创建 我们在客户端有强大的防火墙设置,我们需要每10秒向客户端发送PING以保持连接的活动性。这里的问

我正在尝试在GO中实现websocket服务器。此服务器将负责处理大量websocket连接。我浏览了各种博客文章,解释了如何利用epoll来避免每个连接产生1个read-go例程,它确实大大减少了内存占用,但我没有什么相关问题

  • 在这种情况下,我如何支持写到连接?我是否为每个连接创建一个写go例程?我是否只在有东西要写时才创建goroutine,在这种情况下,如何防止多个write go例程的创建

  • 我们在客户端有强大的防火墙设置,我们需要每10秒向客户端发送PING以保持连接的活动性。这里的问题是,我们将阅读每个客户端对应的PONG消息。epoll方法听起来仍然有效吗?或者我们应该为每个连接创建一对读/写goroutine


  • 非常感谢您提供的任何帮助

    这里有几个问题,其中一些问题不够集中。我将提供以下建议:Gorilla中的读写goroutine确保整个服务器不会阻塞单个卡住或死掉的连接。在研究移除GODUTIN的方法时,考虑这方面的设计。