2024-04-30 23:38:49 +08:00
|
|
|
package dart_bridge
|
|
|
|
|
|
|
|
|
|
import "encoding/json"
|
|
|
|
|
|
|
|
|
|
var Port *int64
|
|
|
|
|
|
|
|
|
|
type MessageType string
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
Log MessageType = "log"
|
|
|
|
|
Tun MessageType = "tun"
|
|
|
|
|
Delay MessageType = "delay"
|
2024-05-05 21:40:12 +08:00
|
|
|
Now MessageType = "now"
|
2024-04-30 23:38:49 +08:00
|
|
|
Process MessageType = "process"
|
2024-06-13 23:43:42 +08:00
|
|
|
Request MessageType = "request"
|
2024-06-16 19:04:33 +08:00
|
|
|
Run MessageType = "run"
|
2024-04-30 23:38:49 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Message struct {
|
|
|
|
|
Type MessageType `json:"type"`
|
|
|
|
|
Data interface{} `json:"data"`
|
|
|
|
|
}
|
|
|
|
|
|
2024-06-16 19:04:33 +08:00
|
|
|
func (message *Message) Json() (string, error) {
|
|
|
|
|
data, err := json.Marshal(message)
|
|
|
|
|
return string(data), err
|
2024-04-30 23:38:49 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func SendMessage(message Message) {
|
2024-06-16 19:04:33 +08:00
|
|
|
if Port == nil {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
s, err := message.Json()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
SendToPort(*Port, s)
|
2024-04-30 23:38:49 +08:00
|
|
|
}
|