我有一个go例程,需要等待套接字连接(来自客户端的传入消息),并且还有一个同时读取的通道。不确定在可能的执行例程中如何做到这一点?任何示例代码都将适用。
我已经看到了如何在通道https://gobyexample.com/non-blocking-channel-operations上执行此操作,但是我将websocket和通道组合在一起。
从这篇文章https://github.com/gorilla/websocket/issues/122看来似乎没有可能(我正在使用大猩猩),但是这已经很老了,想知道是否有新的东西。
要在Go中同时等待两个事件流,您将使用select
语句,但它仅适用于通道。
因此,规范的解决方案是有一个goroutine,它从套接字读取(阻塞)并将数据放置到通道上。然后,您可以在该频道上与其他频道一起select
。