qinglong-go/service/client/client.go

31 lines
456 B
Go
Raw Normal View History

2023-01-12 03:21:57 +00:00
package client
2023-02-03 04:43:37 +00:00
type client struct {
channels []chan any
2023-01-12 03:21:57 +00:00
}
2023-02-03 04:43:37 +00:00
func (c *client) Write(p []byte) (n int, err error) {
2023-01-12 03:21:57 +00:00
data := map[string]string{"type": "manuallyRunScript", "message": string(p)}
2023-02-03 04:43:37 +00:00
for _, channel := range c.channels {
select {
case channel <- data:
default:
2023-01-12 03:21:57 +00:00
}
2023-02-03 04:43:37 +00:00
2023-01-12 03:21:57 +00:00
}
return len(p), nil
}
var (
2023-02-03 04:43:37 +00:00
MyClient *client
2023-01-12 03:21:57 +00:00
)
func init() {
2023-02-03 04:43:37 +00:00
MyClient = new(client)
2023-01-12 03:21:57 +00:00
}
2023-02-03 04:43:37 +00:00
func AddChan(c chan any) {
MyClient.channels = append(MyClient.channels, c)
2023-01-12 03:21:57 +00:00
}