Golang 网络编程实现的高并发聊天程序

栏目: Go · 发布时间: 5年前

内容简介:目前功能较少,欢迎 issue 中提你想要的功能,issue 中要求的功能,优先添加。欢迎吐槽或 star这是使用 Golang 网络编程实现的一个多人在线聊天程序,使用 goroutine 达到高并发的效果,使用 redis 来保存用户的注册信息

github.com/ItsWewin/go…

目前功能较少,欢迎 issue 中提你想要的功能,issue 中要求的功能,优先添加。欢迎吐槽或 star

项目简介

这是使用 Golang 网络编程实现的一个多人在线聊天程序,使用 goroutine 达到高并发的效果,使用 redis 来保存用户的注册信息

项目由服务端和客户端两部分组成,服务端和客户端代码基本独立,server 目录下是服务端代码,client 目录下是客户端代码,commen 目录下的包由服务端和客户端共同使用

项目目录结构如下:

.
├── README.md
├── client // 客户端代码
   ├── logger // 自定义的日志打印器
      └── logger.go
   ├── main.go // 主函数
   ├── model // model 层
      └── user.go
   ├── process // 处理与服务器端的连接,收发消息
      ├── messageProcess.go
      ├── serverProcess.go
      └── userProcess.go
   └── utils
       └── utils.go
├── commen // 客户端和服务端公用代码,主要用来定义客户端和服务端之间通信约定的消息
   └── message
       └── message.go
└── server // 服务端代码
    ├── main // 主函数
       ├── main.go
       └── redis.go
    ├── model // model 层
       ├── clientConn.go
       ├── error.go
       ├── user.go
       └── userDao.go
    ├── process // 处理与客户端的连接,收发消息
       ├── groupMessageProcess.go // 处理群消息
       ├── onlineInfoProcess.go // 显示在线用户
       ├── pointToPointMessageProcess.go // 处理点对点聊天消息
       ├── processor.go // 消息处理器入口
       └── userProcess.go // 处理和用户登陆注册相关消息
    └── utils 
        └── utils.go
复制代码

本地运行本项目(Unix 系统下)

下载项目

下载项目到本地的 GOPATH 目录下(后面会提供 go get 的方式以方便使用),由于这是 Golang 项目,所以需要你本地有 Golang 的运行环境

cd ${GOPATH}/src
git clone git@github.com:ItsWewin/go-chat.git
复制代码

编译和运行

编译并运行服务端代码

go build -o server go-chat/server/main
./server
复制代码

编译并运行客户端代码

go build -o server go-chat/server/main
./server
复制代码

这样就大功告成,你就可以在本地体验本项目了(ps:你要是不想用微信或者QQ聊天可以尝试下把程度搭建在自己的服务器上,喊上你的道友们用这个软件来聊天【手动补个捂脸的表情包】)

项目概况

项目目前实现了如下功能:

  1. 用户注册、登陆
  2. 显示所有在线用户列表
  3. 发送群消息(目前是发送给在线的所有用户)
  4. 私聊某一个用户
  5. 按照消息的类型(info, notice, warn, error, success) 使用不同的颜色打印消息(Unix 和 window 均支持)
  6. 其他的有空再继续扩展... (欢迎提 issue,issue 提到的优先实现)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言程序设计

C语言程序设计

K. N. King / 吕秀锋、黄倩 / 人民邮电出版社 / 2010-4 / 79.00元

时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个“问与......一起来看看 《C语言程序设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具