/
event.go
43 lines (38 loc) · 883 Bytes
/
event.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
package channel
import (
"context"
"errors"
"fmt"
"github.com/dezhishen/onebot-sdk/pkg/config"
)
type EventChannel interface {
StartListen(context.Context, func(message []byte) error) error
// callback func(message []byte) error
}
func NewEventChannel(conf *config.OnebotEventConfig) (EventChannel, error) {
if conf == nil {
return nil, errors.New("config is nil")
}
if conf.Type == "" {
return nil, errors.New("type is empty")
}
switch conf.Type {
// websocket
case "websocket":
return NewWebsocketEventChannel(conf)
// 反向http
case "http-reverse":
return NewHttpReverseEventChannel(conf)
// 反向websocket
case "websocket-reverse":
return NewWebsocketReverseEventChannel(conf)
default:
return nil, fmt.Errorf(
"type %s not support,just support [%s,%s,%s]",
conf.Type,
"websocket",
"http-reverse",
"websocket-reverse",
)
}
}