1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package main
- import (
- "errors"
- "git.ali33.ru/fcg-xvii/go-tools/json"
- )
- func messageError(text string) json.Map {
- return json.Map{
- "error": true,
- "text": text,
- }
- }
- func MessageFromMap(jm json.Map, cl *WSClient) *Message {
- res := &Message{
- client: cl,
- id: jm.Int("id", -1),
- data: jm.Map("data", json.Map{}),
- }
- return res
- }
- type Message struct {
- client *WSClient
- id int64
- data json.Map
- }
- func (s *Message) Client() *WSClient {
- return s.client
- }
- func (s *Message) Data() json.Map {
- return s.data
- }
- func (s *Message) IsResponsable() bool {
- return s.id >= 0
- }
- func (s *Message) SendResponse(data json.Map) error {
- if !s.IsResponsable() {
- return errors.New("response is not supported")
- }
- m := json.Map{
- "is_response": true,
- "id": s.id,
- "data": data,
- }
- return s.client.SendData(m)
- }
|