forked from JeffreyBool/jpush-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjpush.go
51 lines (42 loc) · 1.04 KB
/
jpush.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package jpush
import (
"context"
"sync"
)
var (
internalClient *Client
once sync.Once
)
// Init 初始化推送客户端
func Init(maxThread int, opts ...Option) *Client {
once.Do(func() {
internalClient = NewClient(maxThread, opts...)
})
return internalClient
}
func client() *Client {
if internalClient == nil {
panic("Client is not initialized")
}
return internalClient
}
// Terminate 终止客户端
func Terminate() {
client().Terminate()
}
// GetPushID 获取推送ID
func GetPushID(ctx context.Context) (string, error) {
return client().GetPushID(ctx)
}
// GetScheduleID 获取推送ID
func GetScheduleID(ctx context.Context) (string, error) {
return client().GetScheduleID(ctx)
}
// Push 消息推送
func Push(ctx context.Context, payload *Payload, callback PushResultHandle) error {
return client().Push(ctx, payload, callback)
}
// PushValidate 先校验,再推送
func PushValidate(ctx context.Context, payload *Payload, callback PushResultHandle) error {
return client().PushValidate(ctx, payload, callback)
}