服务器到客户端通信gRpc
我在试图找到解决方案时遇到了一些困难,不知道是否有人能为我指明正确的方向 我正在实现一个系统,其中多个客户端使用gRpc与服务器通信。 服务是用golang编写的,客户端是用C编写的 我正试图找出如何最好地处理从服务器到客户端的通信 到目前为止,我考虑的方案有:服务器到客户端通信gRpc,c,http,go,websocket,grpc,C,Http,Go,Websocket,Grpc,我在试图找到解决方案时遇到了一些困难,不知道是否有人能为我指明正确的方向 我正在实现一个系统,其中多个客户端使用gRpc与服务器通信。 服务是用golang编写的,客户端是用C编写的 我正试图找出如何最好地处理从服务器到客户端的通信 到目前为止,我考虑的方案有: 在每个客户端上设置一台服务器 考虑到可能有多个客户端从一个外部ip运行,我不确定是否有可能创建一个监听公共ip、本地ip和端口组合的客户端 使用 这似乎是上述错误的应用程序,您是否需要生成一个新进程来保持打开的连接 打开gRpc
- 考虑到可能有多个客户端从一个外部ip运行,我不确定是否有可能创建一个监听公共ip、本地ip和端口组合的客户端
- 这似乎是上述错误的应用程序,您是否需要生成一个新进程来保持打开的连接
- 我觉得这不是正确的解决方案,但似乎是3个方案中最简单的
- 为连接的每个客户端创建一个chan,并将其存储在服务的映射中
- 在stream方法中为
- 检查chan是否有任何消息,然后致电stream.sen
- 删除客户端chan if stream.Context().Err()
- 为从stream方法返回的消息创建一个通道
- 在流服务上启动调用stream.Recv的goroutine
gRPC
可用作接收服务器端事件(SSE)的流媒体。所以这是一个很好的选择。
这是保持连接对连接的客户端开放的合理方法吗
我看不出这种方法有什么错
ws
或wss
协议的特定反向代理规则