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  }