前言
看了无闻老师的一节关于 goroutine 与 channel 的讲解课堂,感觉不是很明白,所以决定来实现一个聊天室的功能
为什么是群聊呢?
因为群聊相对逻辑简单些
注:本栗子只用到了 goroutine 并没有用到 channel
概述
1.聊天室的组成
聊天室分为两个部分,分别是:
- 服务端
- 客户端
然后,一般情况下我们互相聊天使用的都只是客户端而已,服务端只是起到调度的作用
2.信息发送与接收的流程
假设我们有 服务端(S) 客户端(C1) 客户端(C2) 客户端(C3)
并且 S 已经 与 C1 C2 C3 建立了连接
理论上的流程是这样的:
- C1 向 S 发出信息
- S 接收到信息
- S 将接收到的信息广播给 C2 C3
- C2 C3 接收信息

实践
1.服务端
1) 代码
package main
import (
"time"
"fmt"
"net"
)
// 客户端 map
var client_map = make(map[string
使用Go实现群聊室:goroutine实践

本文通过一个简单的群聊室实例,探讨如何利用Go的goroutine特性实现服务端与多个客户端的通信。文章详细介绍了聊天室的组成、信息发送与接收流程,并分别展示了服务端和客户端的代码结构,尽管未使用channel,但展示了goroutine在并发处理中的应用。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



