parsec/socket_model.go
2023-06-02 15:41:51 +08:00

111 lines
2.7 KiB
Go

package main
type SocketRequest struct {
Version int `json:"version"`
Action string `json:"action"`
}
type ConnUpdateRequest struct {
SocketRequest
Payload ConnUpdatePayload `json:"payload"`
}
type ConnUpdatePayload struct {
Mode string `json:"mode"`
Name string `json:"name"`
Desc string `json:"desc"`
GameId string `json:"game_id"`
Secret string `json:"secret"`
MaxPlayers int `json:"max_players"`
Players int `json:"players"`
Public bool `json:"public"`
Guests []Guest `json:"guests"`
}
type Guest struct {
GuestId int `json:"guest_id"`
UserId int `json:"user_id"`
Gamepad bool `json:"gamepad"`
Keyboard bool `json:"keyboard"`
Mouse bool `json:"mouse"`
}
type OfferModel struct {
SocketRequest
Payload OfferPayload `json:"payload"`
}
type OfferPayload struct {
To string `json:"to"`
Data any `json:"data"`
AttemptId string `json:"attempt_id"`
Secret string `json:"secret"`
AccessLinkId string `json:"access_link_id"`
From string `json:"from"`
IsOwner bool `json:"is_owner"`
SkipApproval bool `json:"skip_approval"`
Permissions Permission `json:"permissions"`
User OfferUser `json:"user"`
HostUser OfferUser `json:"host_user"`
}
type Permission struct {
Gamepad bool `json:"gamepad"`
Keyboard bool `json:"keyboard"`
Mouse bool `json:"mouse"`
}
type OfferUser struct {
Id int `json:"id"`
TeamId string `json:"team_id"`
Name string `json:"name"`
ExternalId string `json:"external_id"`
ExternalProvider string `json:"external_provider"`
}
type AnswerModel struct {
SocketRequest
Payload AnswerPayload `json:"payload"`
}
type AnswerPayload struct {
To string `json:"to"`
Data any `json:"data"`
AttemptId string `json:"attempt_id"`
Approved bool `json:"approved"`
From string `json:"from"`
UserId int `json:"user_id"`
}
type CandexModel struct {
SocketRequest
Payload CandexPayload `json:"payload"`
}
type CandexPayload struct {
To string `json:"to"`
Data CandexData `json:"data"`
AttemptId string `json:"attempt_id"`
From string `json:"from"`
}
type CandexData struct {
FromStun bool `json:"from_stun"`
Ip string `json:"ip"`
Lan bool `json:"lan"`
Port int `json:"port"`
Sync bool `json:"sync"`
VerData int `json:"ver_data"`
}
type OfferCancelModel struct {
SocketRequest
Payload OfferCancelPayload `json:"payload"`
}
type OfferCancelPayload struct {
To string `json:"to"`
AttemptId string `json:"attempt_id"`
From string `json:"from"`
UserId int `json:"user_id"`
}