知识卡片
聊天室映射并发结构
内容
聊天室服务端通常用多个 goroutine 分别处理主流程、广播、客户端读写,消息广播则成为协调中心。发散:Go 写实时服务时,先画 goroutine 与 channel 的拓扑,再写业务代码。协调机制参见[[Channel表达通信]]。
参考来源
- 位置:《Go语言入门到实战(共3册)》第4章《Go语言编程之旅:第4章 WebSocket应用:聊天室》(源文件:_epub-src/text/part0009_split_000.html)
- 结论依据:原文围绕“聊天室服务端通常用多个goroutine分别处理主流程、广播、客户端读写,消息广播则成为协调中心”展开机制、顺序或组件关系说明;摘录中的关键步骤和术语支撑本卡片正文及结构图。
- 原始内容:t应用:聊天室 4.1 基于 TCP 的聊天室 本节通过命令行来模拟基于 TCP 的简单聊天室。 本程序可以把用户发送的文本消息广播给聊天室内的其他用户。在该服务端程序中,共有四种goroutine:main goroutine、广播消息goroutine,以及每一个客户端连接都会有一个读和写的goroutine。 在本地创建一个项目(代码演示基于的是类UN…