Skip to content

Instantly share code, notes, and snippets.

@AwokeKnowing
Forked from rcurtis/Comm.gd
Created September 25, 2023 20:37
Show Gist options
  • Save AwokeKnowing/ee4b09177f2343fcae1695e79eece520 to your computer and use it in GitHub Desktop.
Save AwokeKnowing/ee4b09177f2343fcae1695e79eece520 to your computer and use it in GitHub Desktop.
extends Node
var client
var wrapped_client
var connected = false
var message_center
var should_connect = false
func _ready():
client = StreamPeerTCP.new()
client.set_no_delay(true)
func _process(delta):
if should_connect and not connected:
pass
if connected and not client.is_connected_to_host():
connected = false
if client.is_connected_to_host():
poll_server()
func connect_to_server(timeout_seconds):
set_process(true)
should_connect = true
var ip = "127.0.0.1"
var port = 8008
logger.info("Connecting to server: %s : %s" % [ip, str(port)])
var connect = client.connect_to_host(ip, port)
if client.is_connected_to_host():
connected = true
logger.info("Connected to local host server")
wrapped_client = PacketPeerStream.new()
wrapped_client.set_stream_peer(client)
func disconnect_from_server():
client.disconnect_from_host()
func poll_server():
while wrapped_client.get_available_packet_count() > 0:
var msg = wrapped_client.get_var()
var error = wrapped_client.get_packet_error()
if error != 0:
logger.error("Error on packet get: %s" % error)
if msg == null:
continue;
logger.verbose("Received msg: " + str(msg))
message_center.process_msg(str(msg))
func send_var(msg):
if client.is_connected_to_host():
logger.verbose("Sending: %s" % msg)
wrapped_client.put_var(msg)
var error = wrapped_client.get_packet_error()
if error != 0:
logger.error("Error on packet put: %s" % error)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment