两个 Go 程序之间的 WebSocket 通信
https://www.elephdev.com/index.php/golang/285.html?ref=addtabs&lang=zh-cn
使用 WebSockets 时,一个程序必须充当服务器。
但是可以有许多其他程序作为客户端。在本文中,我们将创建一个服务器和一个客户端
WebSocket Server
服务器的代码非常简单。因为我们不想重新发明轮子,所以我们将使用gobwas
模块
下面是运行在端口 8080 上的 WebSocket 服务器的代码
服务器除了等待连接之外什么都不做,打印接收到的数据并最后发送一条消息(随机整数)
如果客户端断开连接(或有人停止程序),它将打印有关此断开连接的信息
WebSocket Client
客户端的代码类似。同样,我们将使用gobwas
模块
客户端正在通过端口 8080 连接到 localhost
这个客户端除了连接、发送消息(随机整数)并打印发回的任何内容之外没有什么特别的
测试
左侧,服务器结果
右侧,客户端结果
客户端每 5 秒向服务器发送一个随机数。服务器用另一个随机数回复
如果您停止服务器,您将在客户端看到服务器已断开连接。如果您再次启动服务器,客户端将再次连接。
您可以以另一种方式期待相同的行为。如果停止客户端,服务器将打印一条消息,表明客户端已断开连接。如果您再次运行客户端......好吧,它再次连接
因为 Go 经常用于服务和/或微服务,所以在这些服务之间进行通信是有意义的
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2020-12-16 ES7.8 设置 xpack
2019-12-16 如何修改容器时间而不改变宿主机时间?