github.com/glide-im/glide@v1.6.0/example/api/api_example.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "github.com/glide-im/glide/im_service/client" 6 "github.com/glide-im/glide/pkg/auth/jwt_auth" 7 "github.com/glide-im/glide/pkg/rpc" 8 "github.com/glide-im/glide/pkg/subscription" 9 "github.com/glide-im/glide/pkg/subscription/subscription_impl" 10 ) 11 12 var imServiceRpcCli *client.Client 13 14 func initialize() { 15 var err error 16 imServiceRpcCli, err = client.NewClient(&rpc.ClientOptions{ 17 Addr: "127.0.0.1", 18 Port: 8092, 19 Name: "im_rpc_server", 20 }) 21 if err != nil { 22 panic(err) 23 } 24 } 25 26 func main() { 27 28 //ExampleUserLogin("1") 29 30 initialize() 31 ExampleCreateGroup("c1", "1") 32 ExampleAddMember("c1", "2") 33 } 34 35 func ExampleUserLogin(uid string) { 36 // 用户输入账号密码, 查询到 uid, 用 uid 生成 jwt token, 返回给客户端, 客户端使用该 token 登录聊天服务 37 token, err := jwt_auth.NewAuthorizeImpl("secret").GetToken(&jwt_auth.JwtAuthInfo{ 38 UID: uid, 39 Device: "0", 40 ExpiredHour: 10, 41 }) 42 if err != nil { 43 panic(err) 44 } 45 fmt.Println(token) 46 } 47 48 func ExampleCreateGroup(channelId, adminId string) { 49 50 info := &subscription.ChanInfo{ 51 ID: subscription.ChanID(channelId), 52 Muted: false, 53 Blocked: false, 54 Closed: false, 55 } 56 // 创建频道 57 err := imServiceRpcCli.CreateChannel(info.ID, info) 58 if err != nil { 59 panic(err) 60 } 61 62 // 添加创建者到频道 63 err = imServiceRpcCli.Subscribe(subscription.ChanID(channelId), subscription.SubscriberID(adminId), 64 &subscription_impl.SubscriberOptions{Perm: subscription_impl.PermAdmin}) 65 if err != nil { 66 panic(err) 67 } 68 // 邀请其他成员 69 // ... 70 } 71 72 func ExampleAddMember(channelId, memberId string) { 73 74 err := imServiceRpcCli.Subscribe(subscription.ChanID(channelId), subscription.SubscriberID(memberId), 75 &subscription_impl.SubscriberOptions{Perm: subscription_impl.PermRead}) 76 if err != nil { 77 panic(err) 78 } 79 }