{"id":17967296,"url":"https://github.com/haomiao33/minim","last_synced_at":"2025-03-25T08:31:16.720Z","repository":{"id":259669781,"uuid":"876630865","full_name":"haomiao33/minim","owner":"haomiao33","description":"简单的go写的websocket协议 im 聊天 服务，流程简单清晰，采用golang编写，flutter im客户端。免费开源哈，随意用","archived":false,"fork":false,"pushed_at":"2024-10-27T08:11:26.000Z","size":140,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-27T08:25:35.373Z","etag":null,"topics":["chat","free","golang","im","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haomiao33.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-22T09:48:52.000Z","updated_at":"2024-10-27T08:11:29.000Z","dependencies_parsed_at":"2024-10-27T08:40:43.181Z","dependency_job_id":null,"html_url":"https://github.com/haomiao33/minim","commit_stats":null,"previous_names":["haomiao33/minim"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haomiao33%2Fminim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haomiao33%2Fminim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haomiao33%2Fminim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haomiao33%2Fminim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haomiao33","download_url":"https://codeload.github.com/haomiao33/minim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222062734,"owners_count":16924728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","free","golang","im","websocket"],"created_at":"2024-10-29T14:05:21.743Z","updated_at":"2024-10-29T14:05:22.445Z","avatar_url":"https://github.com/haomiao33.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mini-im\n\n## 1、说明：\n\n### 1.1、项目介绍：\n  简单的go写的im服务，流程简单清晰,大部分接口使用的是http，方便流程控制。login服务目前只是用来做服务端推送消息通知到客户端。本项目采用golang编写，分为login、api、msg-push、online等服务，这些服务都能集群部署和多个实例扩展。用户可以扩充其他协议和服务。\n    \n  作者：目前打算golang编写im，支持单聊、群聊、推送； 然后客户端目前只打算做个flutter im chat 版本的就行。方便大家集成。\n\n  文档放在doc里面了\n\n  sql里面是数据库，自己创建一个就行\n\n  测试客户端：目前是写到testclient目录里面的，nodejs的\n\n  目前有如下服务（每个服务都可以多实例，方便用户量上来扩展和分布式，目前服务注册到consul里面的）：\n    \n  login: 用户登录服务，目前只用来接收服务端下发的消息（主要是消息通知），用户和im的websocket,使用 [gnet](https://github.com/panjf2000/gnet)，后续可以扩展到tcp、udp等，长连接都连接到login服务。不同服务交互使用的grpc，这里面没有写用户认证什么的，大家可以根据自己的业务需求来完成。目前前面的login服务只提供服务端到客户端的推送通知，告诉客户端又消息来了，客户端主动调用api接口取拉消息。\n  \n  api: 消息接口服务，采用[fiber](https://github.com/gofiber/fiber)编写，主要处理客户端的接口请求：消息发送、消息同步、会话管理等等这些。\n      \n  msg-push: 消息推送服务，单聊消息推送\n      \n  online: 在线状态服务，用户在线状态放在这里，内部使用redis存放。login服务\n\n## 1、2 项目部署：\n查看 [部署方法](doc/部署.md) 文件\n\n## 2、登陆\n\u003cimg width=\"740\" alt=\"image\" src=\"https://github.com/user-attachments/assets/bd8024fa-f838-43ac-b4be-ee0066ed5a5e\"\u003e\n\n\n\n## 3、单聊消息：流程图\n\n### 3.1、单聊流程图\n\u003cimg width=\"1086\" alt=\"image\" src=\"https://github.com/user-attachments/assets/7233dda4-79d2-4357-8239-85d687a92334\"\u003e\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaomiao33%2Fminim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaomiao33%2Fminim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaomiao33%2Fminim/lists"}