puzzle/common/Protocol.js
2021-04-19 23:59:14 +02:00

95 lines
2.3 KiB
JavaScript

/*
SERVER_CLIENT_MESSAGE_PROTOCOL
NOTE: clients always send game id and their id
when creating sockets (via socket.protocol), so
this doesn't need to be set in each message data
NOTE: first value in the array is always the type of event/message
when describing them below, the value each has is used
instead of writing EVENT_TYPE or something ismilar
EV_CLIENT_EVENT: event triggered by clients and sent to server
[
EV_CLIENT_EVENT, // constant value, type of event
CLIENT_SEQ, // sequence number sent by client.
EV_DATA, // (eg. mouse input info)
]
EV_SERVER_EVENT: event sent to clients after recieving a client
event and processing it
[
EV_SERVER_EVENT, // constant value, type of event
CLIENT_ID, // user who sent the client event
CLIENT_SEQ, // sequence number of the client event msg
CHANGES_TRIGGERED_BY_CLIENT_EVENT,
]
EV_CLIENT_INIT: event sent by client to enter a game
[
EV_CLIENT_INIT, // constant value, type of event
]
EV_SERVER_INIT: event sent to one client after that client
connects to a game
[
EV_SERVER_INIT, // constant value, type of event
GAME, // complete game instance required by
// client to build client side of the game
]
*/
const EV_SERVER_EVENT = 1
const EV_SERVER_INIT = 4
const EV_SERVER_INIT_REPLAY = 5
const EV_CLIENT_EVENT = 2
const EV_CLIENT_INIT = 3
const EV_CLIENT_INIT_REPLAY = 6
const LOG_HEADER = 1
const LOG_ADD_PLAYER = 2
const LOG_UPDATE_PLAYER = 4
const LOG_HANDLE_INPUT = 3
const INPUT_EV_MOUSE_DOWN = 1
const INPUT_EV_MOUSE_UP = 2
const INPUT_EV_MOUSE_MOVE = 3
const INPUT_EV_ZOOM_IN = 4
const INPUT_EV_ZOOM_OUT = 5
const INPUT_EV_BG_COLOR = 6
const INPUT_EV_PLAYER_COLOR = 7
const INPUT_EV_PLAYER_NAME = 8
const INPUT_EV_MOVE = 9
const CHANGE_DATA = 1
const CHANGE_TILE = 2
const CHANGE_PLAYER = 3
export default {
EV_SERVER_EVENT,
EV_SERVER_INIT,
EV_SERVER_INIT_REPLAY,
EV_CLIENT_EVENT,
EV_CLIENT_INIT,
EV_CLIENT_INIT_REPLAY,
LOG_HEADER,
LOG_ADD_PLAYER,
LOG_UPDATE_PLAYER,
LOG_HANDLE_INPUT,
INPUT_EV_MOVE, // move by x/y
INPUT_EV_MOUSE_DOWN,
INPUT_EV_MOUSE_UP,
INPUT_EV_MOUSE_MOVE,
INPUT_EV_ZOOM_IN,
INPUT_EV_ZOOM_OUT,
INPUT_EV_BG_COLOR,
INPUT_EV_PLAYER_COLOR,
INPUT_EV_PLAYER_NAME,
CHANGE_DATA,
CHANGE_TILE,
CHANGE_PLAYER,
}