基于golang的聊天室

没啥说的,先上个演示版

体验地址
源码地址

说明

为了更好的了解 golang 中的 websocket , goroutines , channels 等。
于是用 golang 写了一个 简单的聊天室

准备

该聊天室使用了如下第三方包

使用

在此默认你已经安装好 golang 环境和工作区配置
下载源码到你的工作区

git clone https://github.com/wuyan94zl/IM

修改配置文件 config/conf.go

package config
const (
    DbName         = "imdatabase"    // 数据库名称
    DbUser         = "root"        // 数据库登录用户
    DbPassword     = "123456"        // 数据库登录密码

    Host        = "localhost"    // ws 监听地址
    Port        = ":8303"        // 监听端口
)

根据自己的情况配置上面数据,默认数据库为本地数据库(127.0.0.1)。
配置好后直接 go run servers.go

浏览器输入 localhost:8303/rooms 进入聊天室列表
image.png
然后添加或进入聊天室,此时需要输入用户名,进入聊天室
image.png

聊天室除了有发送的消息推送,还有人员进出聊天室的推送。
原文地址

本作品采用《CC 协议》,转载必须注明作者和本文链接
没有造飞机的格局,怎么能拧得好螺丝。
讨论数量: 14

xss啦

file

Go

Go

3年前 评论
paco 3年前
wuyan94zl (楼主) 3年前
caoayu 3年前

:+1:可以 我也打算写一个网页版的QQ

3年前 评论
wuyan94zl (楼主) 3年前

请教大佬,怎么“探测”客户端离开的?没看懂原理,也没看到传统的“心跳”包。很厉害。

2年前 评论

跑起来了,感谢楼主。因为浏览器关闭或刷新的时候会给服务端主动发送一个信息,服务端收到这个信息是err,所以会执行到defer,就可以发送用户退出的消息了。

2年前 评论
wuyan94zl (楼主) 2年前

哈喽,最近想了解一下聊天室的相关技术,刚好读到你的博客,其中的 repo 代码我在本地跑起来了,但是访问 localhost:9999/rooms 一直 404,不知道现在应该访问什么。

1年前 评论

你的 vue代码呢

1年前 评论
cjxjing (作者) 1年前

体验地址无法访问

9个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!