前言
最近学习了Go语言,感觉挺不错,简介易学,Go语言目前只有25个关键字,而C++11已经有76个关键字,C++20还会再添加10个左右,当然Go比C++年轻很多,但Go的一些特性也是非常好用,比如channel,gorontine等等,非常好用。
为了练手,做了这个web聊天室,采用gin web框架,基于websocket协议,现做以记录
实现
后端主要思路为:维护一个IP到Client的map,Client结构体包括一个websocket的套接字,一个message类型的channel,用以接收manager发送的消息。另有一个全局的message类型的channel,用以将从客户端接收的消息发送给manager。manager则将全局channel的消息遍历的发送给各客户端。
预览
登陆界面:
注册界面
聊天界面