V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
gochat
V2EX  ›  Go 编程语言

gochat - 纯 go 实现的 im 即时通讯系统

  •  2
     
  •   gochat · 2019-12-01 13:49:07 +08:00 · 8154 次点击
    这是一个创建于 1844 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目推荐

    gochat 为纯 go 实现的即时通讯系统,支持私信消息与房间广播消息,各层之间通过 rpc 通讯,支持水平扩展。
    使用 redis 作为消息存储与投递的载体,相对 kafka 操作起来更加方便快捷,所以十分轻量。
    各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。
    由于 go 的交叉编译特性,编译后可以快速在各个平台上运行,gochat 架构及目录结构清晰,
    并且本项目还贴心的提供了 docker 一键构建所有环境依赖,安装起来十分便捷。
    
    • 推荐理由:
    轻量快捷不臃肿,水平可扩展,docker 快速构建所有环境,迅速体验 im 即时通讯,各层架构清晰,文档说明详细。
    
    • 截图: 系统架构:

    服务发现:

    消息投递

    聊天室预览:

    19 条回复    2023-07-25 10:46:14 +08:00
    shujun
        1
    shujun  
       2019-12-01 13:52:08 +08:00 via iPhone
    支持一个
    dreamerlv3ex
        2
    dreamerlv3ex  
       2019-12-01 13:59:25 +08:00
    需不需要 star
    arfa
        3
    arfa  
       2019-12-01 14:02:04 +08:00
    支持一个,需不需要 star ?
    gochat
        4
    gochat  
    OP
       2019-12-01 14:03:04 +08:00
    star 了,后续可能会持续更新优化
    sunwei0325
        5
    sunwei0325  
       2019-12-01 15:44:01 +08:00
    commit message 改改吧
    gochat
        6
    gochat  
    OP
       2019-12-01 16:20:11 +08:00
    @sunwei0325 commit message 有意为项目名的,目前只有 1 人 commit , 后面有 pr 就不会是这样了
    f1ren2es
        7
    f1ren2es  
       2019-12-01 17:32:58 +08:00
    这个 commit 情况下定位历史 bug 不要太爽
    loading
        8
    loading  
       2019-12-01 17:40:55 +08:00 via Android
    写 commit 写得比我还懒
    Ruoning
        9
    Ruoning  
       2019-12-01 18:10:59 +08:00
    star 了
    Allianzcortex
        10
    Allianzcortex  
       2019-12-01 22:08:36 +08:00 via iPhone
    star 支持,用 go mod 真心感动。当然这个 .travis,后续可以多加点测试支持
    gochat
        11
    gochat  
    OP
       2019-12-02 11:28:07 +08:00
    持续关注吧
    joudev
        12
    joudev  
       2019-12-02 14:15:50 +08:00
    可以一直回车发送的
    gochat
        13
    gochat  
    OP
       2019-12-02 14:33:23 +08:00
    @joudev 对,就是故意支持回车发送的,不用每次点击 send 那么麻烦
    joudev
        14
    joudev  
       2019-12-02 14:41:38 +08:00
    @gochat 意思是空白消息也可以直接发送 那不是一直刷屏吗
    joudev
        15
    joudev  
       2019-12-02 14:44:02 +08:00
    @gochat 你可以试一下回车发送内容后一直按住回车键不放
    gochat
        16
    gochat  
    OP
       2019-12-02 14:54:17 +08:00
    @joudev 是这样,不过你可以提一个 pr 不让其有这样的行为也可以,控制下 js 事件就行,demo 中是这个 feature,hah
    gochat
        17
    gochat  
    OP
       2020-01-15 15:55:43 +08:00
    ⊙﹏x
    hijoker
        18
    hijoker  
       2020-02-12 15:50:38 +08:00
    这是聊天室,不是像微信那样的 IM?
    wkong
        19
    wkong  
       2023-07-25 10:46:14 +08:00
    推荐:

    https://github.com/WuKongIM/WuKongIM (单机百万,底层通讯)
    https://github.com/TangSengDaoDao/TangSengDaoDaoServer (商用级别的开源,高颜值开源)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:00 · PVG 04:00 · LAX 12:00 · JFK 15:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.