Commit 6eb3d80a by 李洪

Merge branch 'develop' of http://gitlab.offcncloud.com/lff58407/im-microservice into develop

parents 4b226442 2213c713
...@@ -3,19 +3,54 @@ module im-microservice ...@@ -3,19 +3,54 @@ module im-microservice
go 1.12 go 1.12
require ( require (
cloud.google.com/go/bigquery v1.9.0 // indirect
cloud.google.com/go/storage v1.10.0 // indirect
github.com/astaxie/beego v1.12.1 github.com/astaxie/beego v1.12.1
github.com/beego/bee v1.11.1 github.com/beego/bee v1.11.1
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354 // indirect
github.com/creack/pty v1.1.11 // indirect
github.com/envoyproxy/go-control-plane v0.9.5 // indirect
github.com/envoyproxy/protoc-gen-validate v0.4.0 // indirect
github.com/go-playground/universal-translator v0.17.0 // indirect github.com/go-playground/universal-translator v0.17.0 // indirect
github.com/go-redis/redis/v8 v8.0.0-beta.5 github.com/go-redis/redis/v8 v8.0.0-beta.5
github.com/go-sql-driver/mysql v1.5.0 github.com/go-sql-driver/mysql v1.5.0
github.com/golang/protobuf v1.4.1 github.com/gogo/protobuf v1.3.1 // indirect
github.com/golang/protobuf v1.4.2
github.com/google/pprof v0.0.0-20200630070148-6609db78bf68 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.2.0
github.com/grpc-ecosystem/grpc-health-probe v0.3.2 // indirect github.com/grpc-ecosystem/grpc-health-probe v0.3.2 // indirect
github.com/iancoleman/strcase v0.0.0-20191112232945-16388991a334 // indirect
github.com/ianlancetaylor/demangle v0.0.0-20200703042025-6ce5b4c20f33 // indirect
github.com/kisielk/errcheck v1.3.0 // indirect
github.com/kr/pretty v0.2.0 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/leodido/go-urn v1.2.0 // indirect github.com/leodido/go-urn v1.2.0 // indirect
github.com/lyft/protoc-gen-star v0.4.15 // indirect
github.com/mwitkow/go-proto-validators v0.3.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/sftp v1.11.0 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/rogpeppe/go-internal v1.6.0 // indirect
github.com/rs/xid v1.2.1 github.com/rs/xid v1.2.1
github.com/segmentio/ksuid v1.0.2 github.com/segmentio/ksuid v1.0.2
golang.org/x/net v0.0.0-20191021144547-ec77196f6094 github.com/spf13/afero v1.3.1 // indirect
github.com/stretchr/objx v0.2.0 // indirect
github.com/stretchr/testify v1.6.1 // indirect
github.com/yuin/goldmark v1.1.32 // indirect
go.opencensus.io v0.22.4 // indirect
go.uber.org/zap v1.10.0
golang.org/x/net v0.0.0-20200625001655-4c5254603344
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 // indirect
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect
golang.org/x/text v0.3.3 // indirect
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
golang.org/x/tools v0.0.0-20200702044944-0cc1aa72b347 // indirect
google.golang.org/genproto v0.0.0-20200702021140-07506425bd67 // indirect
google.golang.org/grpc v1.30.0 google.golang.org/grpc v1.30.0
google.golang.org/protobuf v1.24.0 google.golang.org/protobuf v1.25.0
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
gopkg.in/go-playground/validator.v9 v9.31.0 gopkg.in/go-playground/validator.v9 v9.31.0
gopkg.in/natefinch/lumberjack.v2 v2.0.0
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect
rsc.io/sampler v1.99.99 // indirect
) )
package initialization package initialization
import ( import (
"im-microservice/helper" "time"
"im-microservice/middleware"
"im-microservice/pb" "im-microservice/pb"
"im-microservice/sevice/health" "im-microservice/sevice/health"
"im-microservice/sevice/im_chat_room" "im-microservice/sevice/im_chat_room"
...@@ -10,21 +12,44 @@ import ( ...@@ -10,21 +12,44 @@ import (
iur "im-microservice/sevice/im_user_relationship" iur "im-microservice/sevice/im_user_relationship"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/keepalive"
"google.golang.org/grpc/reflection" "google.golang.org/grpc/reflection"
"github.com/grpc-ecosystem/go-grpc-middleware"
grpc_zap "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap"
grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery"
) )
var RpcServer *grpc.Server var (
RpcServer *grpc.Server
kaep = keepalive.EnforcementPolicy{
MinTime: 5 * time.Second,
PermitWithoutStream: true,
}
kasp = keepalive.ServerParameters{
MaxConnectionIdle: 15 * time.Second,
MaxConnectionAge: 30 * time.Second,
MaxConnectionAgeGrace: 5 * time.Second,
Time: 5 * time.Second,
Timeout: 1 * time.Second,
}
)
func init() { func init() {
var opts []grpc.ServerOption
opts = append(opts, grpc.UnaryInterceptor(helper.Auth)) rpc_server := grpc.NewServer(grpc.KeepaliveEnforcementPolicy(kaep), grpc.KeepaliveParams(kasp),
s := grpc.NewServer(opts...) grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(
middleware.Interceptor,
middleware.Auth,
grpc_recovery.UnaryServerInterceptor(middleware.RecoveryInterceptor()),
grpc_zap.UnaryServerInterceptor(middleware.ZapInterceptor()),
)))
srv := health.NewServer() srv := health.NewServer()
pb.RegisterHealthServer(s, srv) pb.RegisterHealthServer(rpc_server, srv)
pb.RegisterConfigureSeviceServer(s, &ic.ConfigureSevice{}) pb.RegisterConfigureSeviceServer(rpc_server, &ic.ConfigureSevice{})
pb.RegisterChatRoomServiceServer(s, &im_chat_room.ImChatRoomService{}) pb.RegisterChatRoomServiceServer(rpc_server, &im_chat_room.ImChatRoomService{})
pb.RegisterImUserServer(s, &im_user.ImUserServer{}) pb.RegisterImUserServer(rpc_server, &im_user.ImUserServer{})
pb.RegisterUserRelationshipServiceServer(s, &iur.UserRelationshipService{}) pb.RegisterUserRelationshipServiceServer(rpc_server, &iur.UserRelationshipService{})
reflection.Register(s) reflection.Register(rpc_server)
RpcServer = s RpcServer = rpc_server
} }
package middleware
import (
grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
// RecoveryInterceptor panic时返回Unknown错误吗
func RecoveryInterceptor() grpc_recovery.Option {
return grpc_recovery.WithRecoveryHandler(func(p interface{}) (err error) {
return status.Error(codes.Unknown, "panic triggered: " + err.Error())
})
}
\ No newline at end of file
package middleware
import (
grpc_zap "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
)
func ZapInterceptor() *zap.Logger {
w := zapcore.AddSync(&lumberjack.Logger{
Filename: "log/debug.log",
MaxSize: 1024, //MB
LocalTime: true,
})
config := zap.NewProductionEncoderConfig()
config.EncodeTime = zapcore.ISO8601TimeEncoder
core := zapcore.NewCore(
zapcore.NewJSONEncoder(config),
w,
zap.NewAtomicLevel(),
)
logger := zap.New(core, zap.AddCaller(), zap.AddCallerSkip(1))
grpc_zap.ReplaceGrpcLoggerV2(logger)
return logger
}
\ No newline at end of file
...@@ -75,6 +75,7 @@ func (cr *ImChatRoomService) Info(ctx context.Context, ...@@ -75,6 +75,7 @@ func (cr *ImChatRoomService) Info(ctx context.Context,
return return
} }
func getchatroom(room db.ImChatRoom) *pb.ChatRoomInfoReply { func getchatroom(room db.ImChatRoom) *pb.ChatRoomInfoReply {
return &pb.ChatRoomInfoReply{ return &pb.ChatRoomInfoReply{
RoomId: int64(room.Id), RoomId: int64(room.Id),
Creator: room.Creator, Creator: room.Creator,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment