{"id":22185911,"url":"https://github.com/wangle201210/im","last_synced_at":"2025-06-26T06:36:38.548Z","repository":{"id":144440848,"uuid":"166615167","full_name":"wangle201210/im","owner":"wangle201210","description":"在线聊天室","archived":false,"fork":false,"pushed_at":"2019-04-15T17:24:36.000Z","size":75009,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T06:07:53.876Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wangle201210.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2019-01-20T02:26:20.000Z","updated_at":"2025-05-15T13:53:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"72bf02f5-33e9-4795-9d3d-09c4160b23fc","html_url":"https://github.com/wangle201210/im","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wangle201210/im","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangle201210%2Fim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangle201210%2Fim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangle201210%2Fim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangle201210%2Fim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wangle201210","download_url":"https://codeload.github.com/wangle201210/im/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangle201210%2Fim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262017074,"owners_count":23245576,"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":[],"created_at":"2024-12-02T10:18:06.207Z","updated_at":"2025-06-26T06:36:38.538Z","avatar_url":"https://github.com/wangle201210.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# im\n## 基于beego WebIM开发的在线聊天工具\n ```\n 1.clone 项目 --git clone https://github.com/wangle201210/im.git\n 2.本地运行项目(默认位8081端口) --bee run \n 3.访问localhost:8081\n ```\n\n## 线上运行\n```\n1.打包linux版本项目 --CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go\n2.给可执行文件权限  --chmod +x [可执行文件名字]\n3.运行 --nohup ./[可执行文件名字]\n4.退出 \n  先使用--ps -aux | grep [可执行文件名字] 获取PID\n  然后 kill [PID]\n  ```\n## 功能\n```\n基础聊天功能\n多频道\n管理员未登陆或下线后不允许用户登陆\n手机端兼容\n视屏播放\n后台图片更新订阅者界面自动更新\n```\n## 接口\n```\nc端的接口名字可以有c端修改,但是我们传入的数据格式和我们所需要的数据必须保持一致\n时间均取当前服务器时间,不单独发送\n带***的功能为需要c端实现的\nc端都通过http接口向b端发送信息,b端接收到后通过ws向订阅者界面推送\n```\n### 登陆\n```\n功能:c端管理员登陆系统登陆时会向c端发送验证请求\n方法:post\n接口:/login\n需要参数:{\n\tname\t\t字符串\t\t姓名,\n\tpassword\t字符串\t\t密码,\n\troom\t\t数字\t\t\t房间号,\n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"登陆成功！\",\n    \"data\": {\n        \"user\": {\n            c端返回的用户信息\n        },\n        \"token\": b端颁发用户的token\t用于验证用户\tc端必须保留token用于之后c端发送信息到b端\n    }\n}\n\n功能:发送登陆信息到c端并验证     ***\n方法:post\n接口:/c/user/login\n需要参数:{\n\tname\t\t字符串\t\t姓名,\n\tpassword\t字符串\t\t密码,\n\troom\t\t数字\t\t\t房间号,\n}\n返回结果:{\n\tname\t\t字符串\t\t姓名,\n\troom\t\t数字\t\t\t房间号,\n\trole\t\t字符串\t\t权限(admin|user),\n\tinfo\t\tjson\t\t用户其他信息,\n}\n```\n### 聊天记录\n```\n功能:c端发送聊天到b端某房间及c端接收b端信息    ***\n方法:ws\n接口:ws://域名/ws/join?token=xxxxx\u0026room=xxx\n发送消息调用:websock.send(content)\n接受接受调用:websock.onmessage(content)\n接收到的content:{\"Type\":2,\"User\":\"用户名\",\"room\":1,\"Timestamp\":1548658898216,\"content\":\"这里是内容\"} \n\n注解:\n    token       登陆后从c端获取到的用于验证身份\n    room        房间号\n    content     发送(接受)的内容\n\n    content.Type        c端不用\n    content.User        用户名\n    content.room        房间号\n    content.Timestamp   时间戳\n    content.content     消息内容\n```\n\n### 登陆\n```\n功能:超级管理员登陆(用于上传和修改资料,主要是获取token)\n方法:post\n接口:/api/login\n需要参数:{\n    \"name\":\"admin\",\n    \"password\":\"password\"\n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"登陆成功！\",\n    \"data\": {\n        \"user\": {\n            \"id\": 1,\n            \"name\": \"admin\",\n            \"password\": \"password\",\n            \"role\": \"admin\",\n            \"token\": \"\",\n            \"chat\": null,\n            \"created_at\": \"2019-01-27T22:38:23+08:00\",\n            \"updated_at\": \"2019-01-27T22:38:29+08:00\"\n        },\n        \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDk5OTI4MDEsImlhdCI6MTU0OTk4OTIwMSwiaW5mbyI6eyJVaWQiOjEsIlVzZXJuYW1lIjoiYWRtaW4iLCJQYXNzd29yZCI6InBhc3N3b3JkIiwiUm9sZSI6ImFkbWluIn0sIm5iZiI6MTU0OTk4OTIwMX0.cw5JAKnQddcNxZ-J16DTwFs0eyKmAL4bh3aqo0wUytY\"\n    }\n}\n\n普通登陆在界面完成即可\n```\n\n### 视频\n```\n功能:c端新增视频\n方法:post\n接口:/api/admin/videos\n需要参数:{\n        \"url\": \"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4\",\n        \"content\": \"描述(备注)\",\n        \"room\": 3,\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 201,\n    \"msg\": \"添加成功\",\n    \"data\": {\n        \"id\": 4,\n        \"c_id\": 0,\n        \"url\": \"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4\",\n        \"content\": \"描述(备注)\",\n        \"room\": 3,\n        \"created_at\": \"2019-02-11T23:44:55.592745+08:00\",\n        \"updated_at\": \"2019-02-11T23:44:55.592747+08:00\"\n    }\n}\n\n功能:c端删除视频,c_id为c端id\n方法:delete\n接口:/api/admin/video/{c_id}\n需要参数:{\n    \n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"删除成功\",\n    \"data\": \"\"\n}\n\n功能:c端修改视频,c_id为c端id\n方法:put\n接口:/api/admin/video/{c_id}\n需要参数:{\n        \"url\": \"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4\",\n        \"content\": \"描述(备注)\",\n        \"room\": 1,\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 205,\n    \"msg\": \"更新成功\",\n    \"data\": {\n        \"id\": 1,\n        \"c_id\": 1,\n        \"url\": \"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4\",\n        \"content\": \"描述(备注)\",\n        \"room\": 1,\n        \"created_at\": \"2019-01-26T14:06:41+08:00\",\n        \"updated_at\": \"2019-02-11T23:48:21.115248+08:00\"\n    }\n}\n\n功能:查询所有视频\n方法:get\n接口:/api/videos\n需要参数:{\n\n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"查询成功\",\n    \"data\": [\n        {\n            \"id\": 14,\n            \"c_id\": 1,\n            \"title\": \"这里是标题\",\n            \"content\": \"这里是内容,可以是富文本\",\n            \"room\": 1,\n            \"created_at\": \"2019-02-12T15:33:45+08:00\",\n            \"updated_at\": \"2019-02-12T15:33:45+08:00\"\n        },\n        {\n            \"id\": 13,\n            \"c_id\": 1,\n            \"title\": \"这里是标题2\",\n            \"content\": \"这里是内容,可以是富文本\",\n            \"room\": 1,\n            \"created_at\": \"2019-02-12T15:33:32+08:00\",\n            \"updated_at\": \"2019-02-12T15:33:32+08:00\"\n        }\n    ]\n}\n```\n\n### 菜单\n```\n功能:c端新增图片\n方法:post\n接口:/api/admin/pics\n需要参数:{\n        \"url\": \"http://bpic.588ku.com//back_water_img/18/06/13/5a31c43a3c4df7a20f3cb7cdc873bd47.jpg\",\n        \"order\": 3,\n        \"room\": 1,\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 201,\n    \"msg\": \"添加成功\",\n    \"data\": {\n        \"id\": 16,\n        \"c_id\": 1,\n        \"url\": \"http://bpic.588ku.com//back_water_img/18/06/13/5a31c43a3c4df7a20f3cb7cdc873bd47.jpg\",\n        \"order\": 3,\n        \"room\": 1,\n        \"created_at\": \"2019-02-11T23:50:52.505634+08:00\",\n        \"updated_at\": \"2019-02-11T23:50:52.505635+08:00\"\n    }\n}\n\n功能:c端删除图片同步更新用户界面,c_id为c端id\n方法:delete\n接口:/api/admin/pic/{c_id}\n需要参数:{\n    \n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"删除成功\",\n    \"data\": \"\"\n}\n\n功能:c端修改图片,c_id为c端id\n方法:put\n接口:/api/admin/pic/{c_id}\n需要参数:{\n    \"url\": \"http://bpic.588ku.com//back_water_img/18/06/13/5a31c43a3c4df7a20f3cb7cdc873bd47.jpg\",\n    \"order\": 999,\n    \"room\": 1\n}\n返回结果:{\n    \"code\": 205,\n    \"msg\": \"更新成功\",\n    \"data\": {\n        \"id\": 5,\n        \"c_id\": 5,\n        \"url\": \"http://bpic.588ku.com//back_water_img/18/06/13/5a31c43a3c4df7a20f3cb7cdc873bd47.jpg\",\n        \"order\": 999,\n        \"room\": 1,\n        \"created_at\": \"2019-01-27T23:45:04+08:00\",\n        \"updated_at\": \"2019-01-28T13:36:31.667765+08:00\"\n    }\n}\n\n功能:查询所有菜单\n方法:get\n接口:/api/pics\n需要参数:{\n\n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"查询成功\",\n    \"data\": [\n        {\n            \"id\": 4,\n            \"c_id\": 4,\n            \"url\": \"http://bpic.588ku.com//back_water_img/18/06/13/5a31c43a3c4df7a20f3cb7cdc873bd47.jpg\",\n            \"order\": 999,\n            \"room\": 1,\n            \"created_at\": \"2019-01-27T15:45:04+08:00\",\n            \"updated_at\": \"2019-01-28T05:33:35+08:00\"\n        },\n        {\n            \"id\": 5,\n            \"c_id\": 5,\n            \"url\": \"http://bpic.588ku.com//back_water_img/18/06/13/5a31c43a3c4df7a20f3cb7cdc873bd47.jpg\",\n            \"order\": 999,\n            \"room\": 1,\n            \"created_at\": \"2019-01-27T15:45:04+08:00\",\n            \"updated_at\": \"2019-01-28T05:36:31+08:00\"\n        }\n    ]\n}\n\n```\n\n\n### 教学\n```\n功能:c端新增教学\n方法:post\n接口:/api/admin/courses\n需要参数:{\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 201,\n    \"msg\": \"添加成功\",\n    \"data\": {\n        \"id\": 3,\n        \"c_id\": 1,\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"created_at\": \"2019-02-12T00:05:52.781669+08:00\",\n        \"updated_at\": \"2019-02-12T00:05:52.781672+08:00\"\n    }\n}\n\n功能:c端删除教学,c_id为c端id\n方法:delete\n接口:/api/admin/course/{c_id}\n需要参数:{\n    \n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"删除成功\",\n    \"data\": \"\"\n}\n\n功能:c端修改教学,c_id为c端id\n方法:put\n接口:/api/admin/course/{c_id}\n需要参数:{\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 205,\n    \"msg\": \"更新成功\",\n    \"data\": {\n        \"id\": 2,\n        \"c_id\": 11,\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"created_at\": \"2019-02-11T16:04:59+08:00\",\n        \"updated_at\": \"2019-02-12T00:13:41.509851+08:00\"\n    }\n}\n\n功能:查询所有教学\n方法:get\n接口:/api/courses\n需要参数:{\n\n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"查询成功\",\n    \"data\": [\n        {\n            \"id\": 4,\n            \"c_id\": 1,\n            \"content\": \"2这里是内容,可以是富文本\",\n            \"room\": 2,\n            \"created_at\": \"2019-02-11T16:12:29+08:00\",\n            \"updated_at\": \"2019-02-11T16:12:29+08:00\"\n        },\n        {\n            \"id\": 2,\n            \"c_id\": 11,\n            \"content\": \"1这里是内容,可以是富文本\",\n            \"room\": 1,\n            \"created_at\": \"2019-02-11T08:04:59+08:00\",\n            \"updated_at\": \"2019-02-11T16:13:41+08:00\"\n        }\n    ]\n}\n```\n\n\n### 历史\n```\n功能:c端新增历史\n方法:post\n接口:/api/admin/histories\n需要参数:{\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"title\":\"这里是标题\",\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 201,\n    \"msg\": \"添加成功\",\n    \"data\": {\n        \"id\": 8,\n        \"c_id\": 1,\n        \"title\": \"这里是标题\",\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"created_at\": \"2019-02-12T00:19:32.748528+08:00\",\n        \"updated_at\": \"2019-02-12T00:19:32.74853+08:00\"\n    }\n}\n\n功能:c端删除历史,c_id为c端id\n方法:delete\n接口:/api/admin/history/{c_id}\n需要参数:{\n    \n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"删除成功\",\n    \"data\": \"\"\n}\n\n功能:c端修改历史,c_id为c端id\n方法:put\n接口:/api/admin/history/{c_id}\n需要参数:{\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"title\":\"这里是标题2\",\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 205,\n    \"msg\": \"更新成功\",\n    \"data\": {\n        \"id\": 8,\n        \"c_id\": 1,\n        \"title\": \"这里是标题2\",\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"created_at\": \"2019-02-11T16:19:32+08:00\",\n        \"updated_at\": \"2019-02-12T00:22:04.562769+08:00\"\n    }\n}\n\n功能:查询所有历史\n方法:get\n接口:/api/histories\n需要参数:{\n\n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"查询成功\",\n    \"data\": [\n        {\n            \"id\": 8,\n            \"c_id\": 1,\n            \"title\": \"这里是标题2\",\n            \"content\": \"这里是内容,可以是富文本\",\n            \"room\": 1,\n            \"created_at\": \"2019-02-11T08:19:32+08:00\",\n            \"updated_at\": \"2019-02-11T16:22:04+08:00\"\n        },\n        {\n            \"id\": 7,\n            \"c_id\": 111,\n            \"title\": \"这里是标题2\",\n            \"content\": \"这里是内容,可以是富文本\",\n            \"room\": 1,\n            \"created_at\": \"2019-01-30T02:44:41+08:00\",\n            \"updated_at\": \"2019-02-12T15:33:14+08:00\"\n        }\n    ]\n}\n```\n\n\n### 记录\n```\n功能:c端新增记录\n方法:post\n接口:/api/admin/records\n需要参数:{\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"title\":\"这里是标题\",\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 201,\n    \"msg\": \"添加成功\",\n    \"data\": {\n        \"id\": 14,\n        \"c_id\": 1,\n        \"title\": \"这里是标题\",\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"created_at\": \"2019-02-12T23:33:45.356802+08:00\",\n        \"updated_at\": \"2019-02-12T23:33:45.356803+08:00\"\n    }\n}\n\n功能:c端删除记录,c_id为c端id\n方法:delete\n接口:/api/admin/record/{c_id}\n需要参数:{\n    \n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"删除成功\",\n    \"data\": \"\"\n}\n\n功能:c端修改记录,c_id为c端id\n方法:put\n接口:/api/admin/record/{c_id}\n需要参数:{\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"title\":\"这里是标题2\",\n        \"c_id\": 1\n}\n返回结果:{\n    \"code\": 205,\n    \"msg\": \"更新成功\",\n    \"data\": {\n        \"id\": 8,\n        \"c_id\": 1,\n        \"title\": \"这里是标题2\",\n        \"content\": \"这里是内容,可以是富文本\",\n        \"room\": 1,\n        \"created_at\": \"2019-02-11T16:19:32+08:00\",\n        \"updated_at\": \"2019-02-12T00:22:04.562769+08:00\"\n    }\n}\n\n功能:查询所有记录\n方法:get\n接口:/api/records\n需要参数:{\n\n}\n返回结果:{\n    \"code\": 200,\n    \"msg\": \"查询成功\",\n    \"data\": [\n        {\n            \"id\": 14,\n            \"c_id\": 1,\n            \"title\": \"这里是标题\",\n            \"content\": \"这里是内容,可以是富文本\",\n            \"room\": 1,\n            \"created_at\": \"2019-02-12T15:33:45+08:00\",\n            \"updated_at\": \"2019-02-12T15:33:45+08:00\"\n        },\n        {\n            \"id\": 13,\n            \"c_id\": 1,\n            \"title\": \"这里是标题2\",\n            \"content\": \"这里是内容,可以是富文本\",\n            \"room\": 1,\n            \"created_at\": \"2019-02-12T15:33:32+08:00\",\n            \"updated_at\": \"2019-02-12T15:33:32+08:00\"\n        }\n    ]\n}\n```\n{\n    Content: \"大家好！\",\n    Room: 1,\n    Timestamp: 1552566903938,\n    Type: 0,\n    User: \"u\",  \n}\n\n\n## 备注\n以上所有接口都需要在请求头里加入token值,token来源于登陆结果\n如下:\nAuthorization : Bearer token\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwangle201210%2Fim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwangle201210%2Fim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwangle201210%2Fim/lists"}