Golang 从零开始实现多人聊天室(四)离线与用户信息修改

系列文章目录

跟着😽猫猫学Golang,快人一步
系列初开,跟着我走进Go 语言的世界里🌍

系列目录
Golang 从零开始实现多人聊天室(一)服务端监听
Golang 从零开始实现多人聊天室(二)客户端访问
Golang 从零开始实现多人聊天室(三)上线通知与公屏聊天



😺前言

运用 go 里面的net包中的相关方法来实现一个基于tcp的简单多人聊天室
实现

  • 加入聊天室
  • 广播通知
  • 重新登录
  • 上线与离线通知
  • 公屏聊天
  • 群聊
  • 单聊
  • 退出与注销

建立文件目录进行服务端与客户端区分
服务端代码就写在server 文件夹下的 server 文件中
客户端代码就写在cliemt 文件夹下的 client文件中
在这里插入图片描述

项目代码持续更新

多人聊天室
https://github.com/moercat/go-chatroom

此时更新到离线与用户信息修改


一、服务端 client

客户端的离线与注销要区别开来,

  • 离线 也就是我们可以重新登陆,还要保留我们的用户信息
  • 注销 也就是我们离开该服务器,那么我们就要删除连接信息

1.用户信息

为了区分离线与注销,我们为每个客户端新建一个用户信息模型

type User struct {
   
	Age  string //年龄
	Sex  string //性别
}

存入Client模型中,表示每一个人有他们对应的信息

type Client struct {
   
	Conn   net.Conn // 连接信息
	Name   string   // 别名
	IsQuit bool     // 是否退出
	User
}

也等于下方模型

type Client struct {
   
	Conn net.Conn // 连接信息
	Name string   // 别名
	Age  string //年龄
	Sex  string //性别
}

2.离线

如果我们想要退出聊天室,那么我们就不能与服务器再次通信,需要重新建立连接。所以我们新建一个方法Quit 来处理退出,

	switch cMsg.Op {
   
		case Read:
			cMsg.Read()
		case Quit:
			cMsg.Quit()
		case NtyLogin:
			cMsg.ntyLogin()
		default:
			fmt.Println("无效OP")
		}
func (m Message) Quit() {
   
	fmt.Printf("%v 用户[%s]: 退出 \n", time.Now().Format("2006-01-02 15:04:05"), m.Name
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫轻王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值