Browse Source

refactor: refactor project layout

pull/7/head
konenet 3 years ago
parent
commit
7c686173f6
  1. 1
      .gitignore
  2. 6
      README.md
  3. 13
      api/v1/file_controller.go
  4. 6
      api/v1/group_controller.go
  5. 8
      api/v1/message_controller.go
  6. 10
      api/v1/user_controller.go
  7. 0
      assets/screenshot/go-chat-panel.jpeg
  8. 0
      assets/screenshot/screen-share.png
  9. 0
      assets/screenshot/video-chat.png
  10. 6
      cmd/main.go
  11. 7
      config.toml
  12. 11
      config/toml_config.go
  13. 2
      go.mod
  14. 52
      go.sum
  15. 0
      internal/dao/pool/mysql_tool.go
  16. 0
      internal/model/group.go
  17. 0
      internal/model/group_member.go
  18. 0
      internal/model/message.go
  19. 0
      internal/model/user.go
  20. 0
      internal/model/user_friend.go
  21. 4
      internal/router/router.go
  22. 4
      internal/router/socket.go
  23. 6
      internal/server/client.go
  24. 15
      internal/server/server.go
  25. 8
      internal/service/group_service.go
  26. 18
      internal/service/message_service.go
  27. 12
      internal/service/user_service.go
  28. 0
      pkg/common/constant/constant.go
  29. 0
      pkg/common/request/friend_request.go
  30. 0
      pkg/common/request/message_request.go
  31. 0
      pkg/common/response/group_response.go
  32. 0
      pkg/common/response/message_response.go
  33. 0
      pkg/common/response/response_msg.go
  34. 2
      pkg/common/response/search_response.go
  35. 2
      pkg/common/util/file_suffix.go
  36. 0
      pkg/errors/error.go
  37. 0
      pkg/global/log/log.go
  38. 0
      pkg/protocol/message.pb.go
  39. 0
      pkg/protocol/message.proto
  40. 49
      test/proto_test.go

1
.gitignore vendored

@ -22,3 +22,4 @@ test/logs @@ -22,3 +22,4 @@ test/logs
#upload file
static/img/*
web/static/file/*

6
README.md

@ -65,13 +65,13 @@ https://github.com/kone-net/go-chat-web @@ -65,13 +65,13 @@ https://github.com/kone-net/go-chat-web
### 截图
* 语音,文字,图片,视频消息
![go-chat-panel](/static/screenshot/go-chat-panel.jpeg)
![go-chat-panel](/assets/screenshot/go-chat-panel.jpeg)
* 视频通话
![video-chat](/static/screenshot/video-chat.png)
![video-chat](/assets/screenshot/video-chat.png)
* 屏幕共享
![screen-share](/static/screenshot/screen-share.png)
![screen-share](/assets/screenshot/screen-share.png)
## 消息协议
### protocol buffer协议

13
api/v1/file_controller.go

@ -5,9 +5,10 @@ import ( @@ -5,9 +5,10 @@ import (
"net/http"
"strings"
"chat-room/global/log"
"chat-room/common/response"
"chat-room/service"
"chat-room/config"
"chat-room/internal/service"
"chat-room/pkg/common/response"
"chat-room/pkg/global/log"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
@ -17,7 +18,7 @@ import ( @@ -17,7 +18,7 @@ import (
func GetFile(c *gin.Context) {
fileName := c.Param("fileName")
log.Info(fileName)
data, _ := ioutil.ReadFile("static/img/" + fileName)
data, _ := ioutil.ReadFile(config.GetConfig().StaticPath.FilePath + fileName)
c.Writer.Write(data)
}
@ -34,10 +35,10 @@ func SaveFile(c *gin.Context) { @@ -34,10 +35,10 @@ func SaveFile(c *gin.Context) {
newFileName := namePreffix + suffix
log.Info("file", log.Any("file name", "static/img/"+newFileName))
log.Info("file", log.Any("file name", config.GetConfig().StaticPath.FilePath + newFileName))
log.Info("userUuid", log.Any("userUuid name", userUuid))
c.SaveUploadedFile(file, "static/img/"+newFileName)
c.SaveUploadedFile(file, config.GetConfig().StaticPath.FilePath + newFileName)
err := service.UserService.ModifyUserAvatar(newFileName, userUuid)
if err != nil {
c.JSON(http.StatusOK, response.FailMsg(err.Error()))

6
api/v1/group_controller.go

@ -1,9 +1,9 @@ @@ -1,9 +1,9 @@
package v1
import (
"chat-room/model"
"chat-room/common/response"
"chat-room/service"
"chat-room/internal/model"
"chat-room/pkg/common/response"
"chat-room/internal/service"
"net/http"
"github.com/gin-gonic/gin"

8
api/v1/message_controller.go

@ -3,10 +3,10 @@ package v1 @@ -3,10 +3,10 @@ package v1
import (
"net/http"
"chat-room/global/log"
"chat-room/common/request"
"chat-room/common/response"
"chat-room/service"
"chat-room/pkg/global/log"
"chat-room/pkg/common/request"
"chat-room/pkg/common/response"
"chat-room/internal/service"
"github.com/gin-gonic/gin"
)

10
api/v1/user_controller.go

@ -3,11 +3,11 @@ package v1 @@ -3,11 +3,11 @@ package v1
import (
"net/http"
"chat-room/global/log"
"chat-room/model"
"chat-room/common/request"
"chat-room/common/response"
"chat-room/service"
"chat-room/pkg/global/log"
"chat-room/internal/model"
"chat-room/pkg/common/request"
"chat-room/pkg/common/response"
"chat-room/internal/service"
"github.com/gin-gonic/gin"
)

0
static/screenshot/go-chat-panel.jpeg → assets/screenshot/go-chat-panel.jpeg

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 161 KiB

0
static/screenshot/screen-share.png → assets/screenshot/screen-share.png

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

0
static/screenshot/video-chat.png → assets/screenshot/video-chat.png

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

6
cmd/main.go

@ -2,9 +2,9 @@ package main @@ -2,9 +2,9 @@ package main
import (
"chat-room/config"
"chat-room/global/log"
"chat-room/router"
"chat-room/server"
"chat-room/pkg/global/log"
"chat-room/internal/router"
"chat-room/internal/server"
"go.uber.org/zap"
"net/http"
"time"

7
config.toml

@ -1,13 +1,16 @@ @@ -1,13 +1,16 @@
app_name = "chat_room"
appName = "chat_room"
[mysql]
host = "127.0.0.1"
name = "chat"
password = "root1234"
port = 3306
table_prefix = ""
tablePrefix = ""
user = "root"
[log]
level = "debug"
path = "logs/chat.log"
[staticPath]
filePath = "web/static/file/"

11
config/toml_config.go

@ -7,9 +7,10 @@ import ( @@ -7,9 +7,10 @@ import (
)
type TomlConfig struct {
AppName string
MySQL MySQLConfig
Log LogConfig
AppName string
MySQL MySQLConfig
Log LogConfig
StaticPath PathConfig
}
type MySQLConfig struct {
@ -26,6 +27,10 @@ type LogConfig struct { @@ -26,6 +27,10 @@ type LogConfig struct {
Level string
}
type PathConfig struct {
FilePath string
}
var c TomlConfig
func init() {

2
go.mod

@ -3,6 +3,7 @@ module chat-room @@ -3,6 +3,7 @@ module chat-room
go 1.16
require (
github.com/Shopify/sarama v1.30.0
github.com/gin-gonic/gin v1.7.4
github.com/go-playground/validator/v10 v10.9.0 // indirect
github.com/gogo/protobuf v1.3.2
@ -18,7 +19,6 @@ require ( @@ -18,7 +19,6 @@ require (
go.uber.org/zap v1.19.1
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect
golang.org/x/sys v0.0.0-20211106132015-ebca88c72f68 // indirect
golang.org/x/text v0.3.7 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gorm.io/driver/mysql v1.1.3
gorm.io/gorm v1.22.2

52
go.sum

@ -46,6 +46,10 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ @@ -46,6 +46,10 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/Shopify/sarama v1.30.0 h1:TOZL6r37xJBDEMLx4yjB77jxbZYXPaDow08TSK6vIL0=
github.com/Shopify/sarama v1.30.0/go.mod h1:zujlQQx1kzHsh4jfV1USnptCQrHAEZ2Hk8fTKCulPVs=
github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae h1:ePgznFqEG1v3AjMklnK8H7BSc++FDSo7xfK9K7Af+0Y=
github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae/go.mod h1:/cvHQkZ1fst0EmZnA5dFtiQdWCNCFYzb+uE2vqVgvx0=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
@ -66,10 +70,17 @@ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnht @@ -66,10 +70,17 @@ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnht
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q=
github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw=
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
@ -80,6 +91,10 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m @@ -80,6 +91,10 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY=
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
@ -138,6 +153,8 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx @@ -138,6 +153,8 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@ -179,6 +196,9 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ @@ -179,6 +196,9 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
@ -196,6 +216,8 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX @@ -196,6 +216,8 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
@ -206,6 +228,18 @@ github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOn @@ -206,6 +228,18 @@ github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOn
github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=
github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=
github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM=
github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8=
github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o=
github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA=
github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc=
github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY=
github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
@ -219,6 +253,8 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 @@ -219,6 +253,8 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
@ -267,6 +303,8 @@ github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6Yf @@ -267,6 +303,8 @@ github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6Yf
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=
github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@ -276,14 +314,19 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN @@ -276,14 +314,19 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
@ -311,8 +354,12 @@ github.com/ugorji/go v1.2.6/go.mod h1:anCg0y61KIhDlPZmnH+so+RQbysYVyDko0IMgJv0Nn @@ -311,8 +354,12 @@ github.com/ugorji/go v1.2.6/go.mod h1:anCg0y61KIhDlPZmnH+so+RQbysYVyDko0IMgJv0Nn
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/ugorji/go/codec v1.2.6 h1:7kbGefxLoDBuYXOms4yD7223OpNMMPNPZxXk5TvFcyQ=
github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxWFFpvxTw=
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
github.com/wxnacy/wgo v1.0.4 h1:UEkzjlW3pMAXcTUCgMekrCvFYLKKwc0p5GAQrMIphs8=
github.com/wxnacy/wgo v1.0.4/go.mod h1:8hqUwCgvMGgAIr4MLIeFur2YXS/Ns3vbyx5abx0e8iM=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@ -346,8 +393,10 @@ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8U @@ -346,8 +393,10 @@ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -422,6 +471,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v @@ -422,6 +471,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ=
golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -714,6 +765,7 @@ gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= @@ -714,6 +765,7 @@ gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=
gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

0
dao/pool/mysql_tool.go → internal/dao/pool/mysql_tool.go

0
model/group.go → internal/model/group.go

0
model/group_member.go → internal/model/group_member.go

0
model/message.go → internal/model/message.go

0
model/user.go → internal/model/user.go

0
model/user_friend.go → internal/model/user_friend.go

4
router/router.go → internal/router/router.go

@ -2,8 +2,8 @@ package router @@ -2,8 +2,8 @@ package router
import (
"chat-room/api/v1"
"chat-room/global/log"
"chat-room/common/response"
"chat-room/pkg/global/log"
"chat-room/pkg/common/response"
"net/http"
"github.com/gin-gonic/gin"

4
router/socket.go → internal/router/socket.go

@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
package router
import (
"chat-room/global/log"
"chat-room/server"
"chat-room/pkg/global/log"
"chat-room/internal/server"
"net/http"
"github.com/gin-gonic/gin"

6
server/client.go → internal/server/client.go

@ -1,9 +1,9 @@ @@ -1,9 +1,9 @@
package server
import (
"chat-room/common/constant"
"chat-room/global/log"
"chat-room/protocol"
"chat-room/pkg/common/constant"
"chat-room/pkg/global/log"
"chat-room/pkg/protocol"
"github.com/gogo/protobuf/proto"
"github.com/gorilla/websocket"

15
server/server.go → internal/server/server.go

@ -1,11 +1,12 @@ @@ -1,11 +1,12 @@
package server
import (
"chat-room/common/constant"
"chat-room/common/util"
"chat-room/global/log"
"chat-room/protocol"
"chat-room/service"
"chat-room/config"
"chat-room/pkg/common/constant"
"chat-room/pkg/common/util"
"chat-room/pkg/global/log"
"chat-room/pkg/protocol"
"chat-room/internal/service"
"encoding/base64"
"io/ioutil"
"strings"
@ -153,7 +154,7 @@ func saveMessage(message *protocol.Message) { @@ -153,7 +154,7 @@ func saveMessage(message *protocol.Message) {
log.Error("transfer base64 to file error", log.String("transfer base64 to file error", dataErr.Error()))
return
}
err := ioutil.WriteFile("static/img/"+url, dataBuffer, 0666)
err := ioutil.WriteFile(config.GetConfig().StaticPath.FilePath + url, dataBuffer, 0666)
if err != nil {
log.Error("write file error", log.String("write file error", err.Error()))
return
@ -169,7 +170,7 @@ func saveMessage(message *protocol.Message) { @@ -169,7 +170,7 @@ func saveMessage(message *protocol.Message) {
}
contentType := util.GetContentTypeBySuffix(fileSuffix)
url := uuid.New().String() + "." + fileSuffix
err := ioutil.WriteFile("static/img/"+url, message.File, 0666)
err := ioutil.WriteFile(config.GetConfig().StaticPath.FilePath + url, message.File, 0666)
if err != nil {
log.Error("write file error", log.String("write file error", err.Error()))
return

8
service/group_service.go → internal/service/group_service.go

@ -1,11 +1,11 @@ @@ -1,11 +1,11 @@
package service
import (
"chat-room/dao/pool"
"chat-room/errors"
"chat-room/common/response"
"chat-room/internal/dao/pool"
"chat-room/pkg/errors"
"chat-room/pkg/common/response"
"chat-room/model"
"chat-room/internal/model"
"github.com/google/uuid"
)

18
service/message_service.go → internal/service/message_service.go

@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
package service
import (
"chat-room/common/constant"
"chat-room/dao/pool"
"chat-room/errors"
"chat-room/global/log"
"chat-room/common/response"
"chat-room/protocol"
"chat-room/model"
"chat-room/common/request"
"chat-room/pkg/common/constant"
"chat-room/internal/dao/pool"
"chat-room/pkg/errors"
"chat-room/pkg/global/log"
"chat-room/pkg/common/response"
"chat-room/pkg/protocol"
"chat-room/internal/model"
"chat-room/pkg/common/request"
"gorm.io/gorm"
)

12
service/user_service.go → internal/service/user_service.go

@ -3,12 +3,12 @@ package service @@ -3,12 +3,12 @@ package service
import (
"time"
"chat-room/common/request"
"chat-room/common/response"
"chat-room/dao/pool"
"chat-room/errors"
"chat-room/global/log"
"chat-room/model"
"chat-room/pkg/common/request"
"chat-room/pkg/common/response"
"chat-room/internal/dao/pool"
"chat-room/pkg/errors"
"chat-room/pkg/global/log"
"chat-room/internal/model"
"github.com/google/uuid"
)

0
common/constant/constant.go → pkg/common/constant/constant.go

0
common/request/friend_request.go → pkg/common/request/friend_request.go

0
common/request/message_request.go → pkg/common/request/message_request.go

0
common/response/group_response.go → pkg/common/response/group_response.go

0
common/response/message_response.go → pkg/common/response/message_response.go

0
common/response/response_msg.go → pkg/common/response/response_msg.go

2
common/response/search_response.go → pkg/common/response/search_response.go

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
package response
import "chat-room/model"
import "chat-room/internal/model"
type SearchResponse struct {
User model.User `json:"user"`

2
common/util/file_suffix.go → pkg/common/util/file_suffix.go

@ -2,7 +2,7 @@ package util @@ -2,7 +2,7 @@ package util
import (
"bytes"
"chat-room/common/constant"
"chat-room/pkg/common/constant"
"encoding/hex"
"strconv"
"strings"

0
errors/error.go → pkg/errors/error.go

0
global/log/log.go → pkg/global/log/log.go

0
protocol/message.pb.go → pkg/protocol/message.pb.go

0
protocol/message.proto → pkg/protocol/message.proto

49
test/proto_test.go

@ -1 +1,50 @@ @@ -1 +1,50 @@
package test
import (
"fmt"
"strings"
"testing"
"github.com/Shopify/sarama"
)
func TestKafka(t *testing.T) {
hosts := "127.0.0.1:9092"
config := sarama.NewConfig()
client, _ := sarama.NewClient(strings.Split(hosts, ","), config)
producer, _ := sarama.NewAsyncProducerFromClient(client)
defer func() {
if producer != nil {
producer.Close()
}
if client != nil {
client.Close()
}
}()
var str string = "test"
var data []byte = []byte(str)
be := sarama.ByteEncoder(data)
fmt.Println(be)
producer.Input() <- &sarama.ProducerMessage{Topic: "test", Key: nil, Value: be}
}
var consumer sarama.Consumer
type ConsumerCallBack func(data []byte)
func TestKafkaConsumer(t *testing.T) {
hosts := "127.0.0.1:9092"
config := sarama.NewConfig()
client, _ := sarama.NewClient(strings.Split(hosts, ","), config)
consumer, _ = sarama.NewConsumerFromClient(client)
partitionConsumer, _ := consumer.ConsumePartition("test", 0, sarama.OffsetNewest)
defer partitionConsumer.Close()
for {
msg := <-partitionConsumer.Messages()
fmt.Println(msg.Value)
fmt.Println(string(msg.Value))
}
}
Loading…
Cancel
Save