golang同时等待套接字连接和通道

问题描述 投票:0回答:1

我有一个go例程,需要等待套接字连接(来自客户端的传入消息),并且还有一个同时读取的通道。不确定在可能的执行例程中如何做到这一点?任何示例代码都将适用。

我已经看到了如何在通道https://gobyexample.com/non-blocking-channel-operations上执行此操作,但是我将websocket和通道组合在一起。

从这篇文章https://github.com/gorilla/websocket/issues/122看来似乎没有可能(我正在使用大猩猩),但是这已经很老了,想知道是否有新的东西。

go goroutine
1个回答
0
投票

要在Go中同时等待两个事件流,您将使用select语句,但它仅适用于通道。

因此,规范的解决方案是有一个goroutine,它从套接字读取(阻塞)并将数据放置到通道上。然后,您可以在该频道上与其他频道一起select

© www.soinside.com 2019 - 2024. All rights reserved.