-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathws-sender.js
More file actions
121 lines (94 loc) · 3.76 KB
/
ws-sender.js
File metadata and controls
121 lines (94 loc) · 3.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
class WSSender {
constructor(server) {
this.server = server;
}
roomInfoToLobbyInfo(roomInfo, msg) {
return {
msg,
gameId: roomInfo.id,
gameName: roomInfo.name,
username: roomInfo.player.username,
startDate: roomInfo.startDate,
numberOfWatcher: roomInfo.watchers.size
};
}
gameCloseWait(socketInfoList) {
this.server.sendToList({msg: 'game_close_wait'}, socketInfoList);
}
lobby(roomInfoList, socketInfoList) {
this.server.sendToList({
msg: 'lobby',
gameList: roomInfoList.map(r => this.roomInfoToLobbyInfo(r))
}, socketInfoList);
}
initGame(webRC, socketInfoList) {
this.server.sendToList({msg: 'init_game', webRC}, socketInfoList);
}
updateWatcher(userList, numberOfWatchers, socketInfoList) {
this.server.sendToList({msg: 'update_watcher', userList, numberOfWatchers}, socketInfoList);
}
debug(message, socketInfoList) {
this.server.sendToList({msg: 'debug', debug: message}, socketInfoList);
}
pong(socketInfoList) {
this.server.sendToList({msg: 'pong'}, socketInfoList);
}
chatMsg(username, text, isPublic, socketInfoList) {
this.server.sendToList({msg: 'chat_msg', username, text, isPublic}, socketInfoList);
}
registerFail(reason, socketInfoList) {
this.server.sendToList({msg: 'register_fail', reason}, socketInfoList);
}
registerSuccess(socketInfoList) {
this.server.sendToList({msg: 'register_success'}, socketInfoList);
}
dataToRoom(data, roomInfo) {
this.data(data, [roomInfo.player, ...roomInfo.watchers]);
}
loginFail(reason, socketInfoList) {
this.server.sendToList({msg: 'login_fail', reason}, socketInfoList);
}
loginSuccess(username, sessionKey, socketInfoList) {
this.server.sendToList({msg: 'login_success', username, sessionKey}, socketInfoList);
}
gameMenu(games, socketInfoList) {
this.server.sendToList({msg: 'game_menu', games}, socketInfoList);
}
data(data, socketInfoList = Object.values(this.server.connectionInfoMap)) {
this.server.sendToList(data, socketInfoList);
}
getRCResponse(id, name, rcText, socketInfoList) {
this.server.sendToList({msg: 'get_rc_response', id, name, rcText}, socketInfoList);
}
saveRCSuccess(socketInfoList) {
this.server.sendToList({msg: 'save_rc_success'}, socketInfoList);
}
play(id, name, socketInfoList) {
this.server.sendToList({msg: 'play', id, name}, socketInfoList);
}
watch(username, socketInfoList) {
this.server.sendToList({msg: 'watch', username}, socketInfoList);
}
setTile(filePath, dataPath, tileData, socketInfoList) {
this.server.sendToList({msg: 'set_tile', filePath, dataPath, tileData}, socketInfoList);
}
lobbyAdd(roomInfo, socketInfoList) {
this.server.sendToList(this.roomInfoToLobbyInfo(roomInfo, 'lobby_add'), socketInfoList);
}
lobbyUpdate(roomInfo, socketInfoList) {
this.server.sendToList(this.roomInfoToLobbyInfo(roomInfo, 'lobby_update'), socketInfoList);
}
lobbyRemove(roomInfo, socketInfoList) {
this.server.sendToList(this.roomInfoToLobbyInfo(roomInfo, 'lobby_remove'), socketInfoList);
}
terminal(data, socketInfoList) {
this.server.sendToList({msg: 'terminal', data}, socketInfoList);
}
terminalError(error, socketInfoList) {
this.server.sendToList({msg: 'terminal_error', error}, socketInfoList);
}
initWatch(playData, terminalData, webRC, socketInfoList) {
this.server.sendToList({msg: 'init_watch', playData, terminalData, webRC}, socketInfoList);
}
}
exports = module.exports = WSSender;