1
1
extends Node
2
- class_name BackendMultiplayerManager
2
+ class_name RivetMultiplayerManager
3
3
4
4
enum Transport { ENET , WEB_SOCKET }
5
5
@@ -79,7 +79,7 @@ var _player_token = null
79
79
func setup_multiplayer ():
80
80
# Validate only initialized once
81
81
if _multiplayer_setup :
82
- BackendLogger .warning ("setup_multiplayer already called" )
82
+ RivetLogger .warning ("setup_multiplayer already called" )
83
83
return
84
84
_multiplayer_setup = true
85
85
@@ -111,29 +111,29 @@ func setup_multiplayer():
111
111
if OS .has_environment ("LOBBY_ID" ):
112
112
_lobby_id = OS .get_environment ("LOBBY_ID" )
113
113
else :
114
- BackendLogger .warning ("Missing lobby ID" )
114
+ RivetLogger .warning ("Missing lobby ID" )
115
115
116
116
if OS .has_environment ("LOBBY_TOKEN" ):
117
117
_lobby_token = OS .get_environment ("LOBBY_TOKEN" )
118
118
119
119
# Start server
120
120
if transport == Transport .ENET :
121
- BackendLogger .log ("Starting ENet server: %s :%s " % [_server_hostname , _server_port ])
121
+ RivetLogger .log ("Starting ENet server: %s :%s " % [_server_hostname , _server_port ])
122
122
123
123
peer = ENetMultiplayerPeer .new ()
124
124
peer .set_bind_ip (_server_hostname )
125
125
peer .create_server (_server_port )
126
126
# TODO: crash if create server fails
127
127
multiplayer .set_multiplayer_peer (peer )
128
128
elif transport == Transport .WEB_SOCKET :
129
- BackendLogger .log ("Starting WebSocket server: %s :%s " % [_server_hostname , _server_port ])
129
+ RivetLogger .log ("Starting WebSocket server: %s :%s " % [_server_hostname , _server_port ])
130
130
131
131
peer = WebSocketMultiplayerPeer .new ()
132
132
peer .create_server (_server_port , _server_hostname )
133
133
# TODO: crash if create server fails
134
134
multiplayer .set_multiplayer_peer (peer )
135
135
else :
136
- BackendLogger .error ("Unsupported transport: %s " % transport )
136
+ RivetLogger .error ("Unsupported transport: %s " % transport )
137
137
OS .crash ("Unsupported transport" )
138
138
139
139
# Notify lobby ready
@@ -142,24 +142,24 @@ func setup_multiplayer():
142
142
}
143
143
if _lobby_token != null :
144
144
request ["lobbyToken" ] = _lobby_token
145
- var response = await Backend .lobbies .set_lobby_ready (request ).async ()
145
+ var response = await Rivet .lobbies .set_lobby_ready (request ).async ()
146
146
if response .is_ok ():
147
- BackendLogger .log ("Lobby ready" )
147
+ RivetLogger .log ("Lobby ready" )
148
148
else :
149
- BackendLogger .warning ("Lobby ready failed failed: %s " % response .body )
149
+ RivetLogger .warning ("Lobby ready failed failed: %s " % response .body )
150
150
OS .crash ("Lobby ready failed" )
151
151
return
152
152
153
153
## Connect to a lobby returned from the backend.
154
154
func connect_to_lobby (lobby , player ):
155
155
if ! _multiplayer_setup :
156
- BackendLogger .error ("setup_multiplayer needs to be called in _ready" )
156
+ RivetLogger .error ("setup_multiplayer needs to be called in _ready" )
157
157
return
158
158
if is_server :
159
- BackendLogger .warning ("Cannot called set_player_token on server" )
159
+ RivetLogger .warning ("Cannot called set_player_token on server" )
160
160
return
161
161
162
- BackendLogger .log ("Connecting to lobby: %s %s " % [lobby , player ])
162
+ RivetLogger .log ("Connecting to lobby: %s %s " % [lobby , player ])
163
163
164
164
# Save token
165
165
_player_token = player .token
@@ -179,12 +179,12 @@ func connect_to_lobby(lobby, player):
179
179
hostname = backend_port .hostname
180
180
port = backend_port .port
181
181
else :
182
- BackendLogger .error ("Unsupported lobby backend: %s " % lobby .backend )
182
+ RivetLogger .error ("Unsupported lobby backend: %s " % lobby .backend )
183
183
return
184
184
185
185
# Start server
186
186
if transport == Transport .ENET :
187
- BackendLogger .log ("Connecting to ENet server: %s :%s " % [hostname , port ])
187
+ RivetLogger .log ("Connecting to ENet server: %s :%s " % [hostname , port ])
188
188
189
189
peer = ENetMultiplayerPeer .new ()
190
190
peer .create_client (hostname , port )
@@ -197,44 +197,44 @@ func connect_to_lobby(lobby, player):
197
197
ws_protocol = "ws"
198
198
var url = "%s ://%s :%s " % [ws_protocol , hostname , port ]
199
199
200
- BackendLogger .log ("Connecting to WebSocket server: %s " % url )
200
+ RivetLogger .log ("Connecting to WebSocket server: %s " % url )
201
201
202
202
peer = WebSocketMultiplayerPeer .new ()
203
203
peer .create_client (url )
204
204
multiplayer .set_multiplayer_peer (peer )
205
205
else :
206
- BackendLogger .error ("Unsupported transport: %s " % transport )
206
+ RivetLogger .error ("Unsupported transport: %s " % transport )
207
207
208
208
# MARK: Peers
209
209
func _on_peer_connected (id ):
210
- BackendLogger .log ('Peer connected: %s ' % id )
210
+ RivetLogger .log ('Peer connected: %s ' % id )
211
211
212
212
if is_server :
213
213
client_connected .emit (id )
214
214
else :
215
215
server_connected .emit ()
216
216
217
217
func _on_peer_disconnected (id ):
218
- BackendLogger .log ('Peer disconnected: %s ' % id )
218
+ RivetLogger .log ('Peer disconnected: %s ' % id )
219
219
220
220
if is_server :
221
221
# Remove player from lobby
222
222
var player_token = _player_tokens .get (id )
223
223
if player_token != null :
224
224
_player_tokens .erase (id )
225
- BackendLogger .log ("Removing player %s " % player_token )
225
+ RivetLogger .log ("Removing player %s " % player_token )
226
226
227
227
var request = {
228
228
"lobbyId" : _lobby_id ,
229
229
"playerTokens" : [player_token ],
230
230
}
231
231
if _lobby_token != null :
232
232
request ["lobbyToken" ] = _lobby_token
233
- var response = await Backend .lobbies .set_player_disconnected (request ).async ()
233
+ var response = await Rivet .lobbies .set_player_disconnected (request ).async ()
234
234
if response .is_error ():
235
- BackendLogger .warning ("Player disconnect failed for %i d: %s " % [id , response .body ])
235
+ RivetLogger .warning ("Player disconnect failed for %i d: %s " % [id , response .body ])
236
236
else :
237
- BackendLogger .warning ("Player disconnected without player token: %s " % id )
237
+ RivetLogger .warning ("Player disconnected without player token: %s " % id )
238
238
return
239
239
240
240
# Signal
@@ -243,13 +243,13 @@ func _on_peer_disconnected(id):
243
243
server_disconnected .emit ()
244
244
245
245
func _on_connected_to_server ():
246
- BackendLogger .log ('Connected to server' )
246
+ RivetLogger .log ('Connected to server' )
247
247
248
248
func _on_connection_failed ():
249
- BackendLogger .log ('Connection failed' )
249
+ RivetLogger .log ('Connection failed' )
250
250
251
251
func _on_server_disconnected ():
252
- BackendLogger .log ('Server disconnected' )
252
+ RivetLogger .log ('Server disconnected' )
253
253
254
254
# MARK: Authentication
255
255
func _auth_callback (id : int , buf : PackedByteArray ):
@@ -259,12 +259,12 @@ func _auth_callback(id: int, buf: PackedByteArray):
259
259
json .parse (buf .get_string_from_utf8 ())
260
260
var data = json .get_data ()
261
261
262
- BackendLogger .log ("Player authenticating %s : %s " % [id , data ])
262
+ RivetLogger .log ("Player authenticating %s : %s " % [id , data ])
263
263
264
264
# Check token
265
265
var player_token = data ["player_token" ]
266
266
if player_token == null :
267
- BackendLogger .warning ("Player token not provided in auth for %s " % id )
267
+ RivetLogger .warning ("Player token not provided in auth for %s " % id )
268
268
_scene_multiplayer .disconnect_peer (id )
269
269
return
270
270
@@ -278,13 +278,13 @@ func _auth_callback(id: int, buf: PackedByteArray):
278
278
}
279
279
if _lobby_token != null :
280
280
request ["lobbyToken" ] = _lobby_token
281
- var response = await Backend .lobbies .set_player_connected (request ).async ()
281
+ var response = await Rivet .lobbies .set_player_connected (request ).async ()
282
282
if response .is_ok ():
283
- BackendLogger .log ("Player authenticated for %s " % id )
283
+ RivetLogger .log ("Player authenticated for %s " % id )
284
284
_scene_multiplayer .complete_auth (id )
285
285
else :
286
286
# Player will be cleaned up on disconnect handler
287
- BackendLogger .warning ("Player authentiation failed for %s : %s " % [id , response .body ])
287
+ RivetLogger .warning ("Player authentiation failed for %s : %s " % [id , response .body ])
288
288
_scene_multiplayer .disconnect_peer (id )
289
289
else :
290
290
# Server does not need to auth with client
@@ -294,7 +294,7 @@ func _on_peer_authenticating(id):
294
294
# if is_server:
295
295
# return
296
296
297
- BackendLogger .log ("Authenticating with server" )
297
+ RivetLogger .log ("Authenticating with server" )
298
298
var body = JSON .stringify ({ "player_token" : _player_token })
299
299
(multiplayer as SceneMultiplayer ).send_auth (id , body .to_utf8_buffer ())
300
300
@@ -303,6 +303,6 @@ func _on_peer_authentication_failed(id):
303
303
# if !is_server:
304
304
# return
305
305
306
- BackendLogger .warning ("Client authentication failed %s " % id )
306
+ RivetLogger .warning ("Client authentication failed %s " % id )
307
307
multiplayer .set_multiplayer_peer (null )
308
308
0 commit comments