Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =========Main Server, Server.gd=========
- extends Node
- var network = NetworkedMultiplayerENet.new()
- var port = 30004
- var max_shards = 4
- func _ready() -> void:
- StartServer()
- func StartServer() -> void:
- network.create_server(port, max_shards)
- get_tree().set_network_peer(network)
- print("Server started")
- network.connect("peer_connected", self, "_peer_connected")
- network.connect("peer_disconnected", self, "_peer_disconnected")
- remote func PingRequest(client_id) -> void:
- print("Ping requested")
- var result = DB.readDataFromTableNoID("NetTest")[0].Result
- rpc_id(get_tree().get_rpc_sender_id(), "PingRequestResult", client_id, result)
- func _peer_connected(peer_id) -> void:
- print("Shard " + str(peer_id) + " connected")
- func _peer_disconnected(peer_id) -> void:
- print("Shard " + str(peer_id) + " disconnected")
- ===========================================================================================
- =========Shard, Server.gd=========
- extends Node
- var network: NetworkedMultiplayerENet = NetworkedMultiplayerENet.new()
- var ip: String = "127.0.0.1"
- var port: int = 30004
- func _ready() -> void:
- ConnectToServer()
- func ConnectToServer() -> void:
- network.create_client(ip, port)
- get_tree().set_network_peer(network)
- network.connect("connection_failed", self, "_on_connection_failed")
- network.connect("connection_succeeded", self, "_on_connection_succeeded")
- func RequestPing(client_id) -> void:
- print("Requesting ping from server")
- rpc_id(1, "PingRequest", client_id)
- remote func PingRequestResult(client_id, result: String) -> void:
- print("Recieved server ping")
- Shard.SendPingRequestResult(client_id, result)
- func _on_connection_failed() -> void:
- print("Failed to connect to server")
- func _on_connection_succeeded() -> void:
- print("Connected to server")
- ===========================================================================================
- =========Shard, Shard.gd=========
- extends Node
- var network: NetworkedMultiplayerENet = NetworkedMultiplayerENet.new()
- var shard_api: MultiplayerAPI = MultiplayerAPI.new()
- var port: int = 30000
- var max_clients: int = 100
- func _ready() -> void:
- StartServer()
- func _process(_delta) -> void:
- if !custom_multiplayer.has_network_peer():
- return
- custom_multiplayer.poll()
- func StartServer() -> void:
- network.create_server(port, max_clients)
- set_custom_multiplayer(shard_api)
- custom_multiplayer.set_root_node(self)
- custom_multiplayer.set_network_peer(network)
- print("Shard server started")
- network.connect("peer_connected", self, "_peer_connected")
- network.connect("peer_disconnected", self, "_peer_disconnected")
- remote func Ping(data: String) -> void:
- print("pinged")
- if data == "Ping":
- print("correct request")
- Server.RequestPing(get_tree().get_rpc_sender_id())
- else:
- print("incorrect request")
- rpc_id(get_tree().get_rpc_sender_id(), "TestRequestResult", "Unrecognized")
- func SendPingRequestResult(client_id, result: String) -> void:
- print("Recieved ping on shard, sending it to client")
- rpc_id(client_id, "TestRequestResult", result)
- func _peer_connected(peer_id) -> void:
- print("Client " + str(peer_id) + " connected")
- func _peer_disconnected(peer_id) -> void:
- print("Client " + str(peer_id) + " disconnected")
- ===========================================================================================
- =========Client, Shard.gd=========
- extends Node
- var network = NetworkedMultiplayerENet.new()
- var ip = "127.0.0.1"
- var port = 30000
- func ConnectToServer() -> void:
- network.create_client(ip, port)
- get_tree().set_network_peer(network)
- network.connect("connection_failed", self, "_on_connection_failed")
- network.connect("connection_succeeded", self, "_on_connection_succeeded")
- func TestRequest(data: String) -> void:
- rpc_id(1, "Ping", data)
- remote func TestRequestResult(result: String) -> void:
- print(result)
- func _on_connection_failed() -> void:
- print("Failed to connect")
- func _on_connection_succeeded() -> void:
- print("Connected")
- TestRequest("Ping")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement