forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			44 lines
		
	
	
		
			896 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			896 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha.netsync; | ||
|  | 
 | ||
|  | import haxe.io.Bytes; | ||
|  | 
 | ||
|  | class WebSocketClient implements Client { | ||
|  | 	var myId: Int; | ||
|  | 	var socket: Dynamic; | ||
|  | 
 | ||
|  | 	public function new(id: Int, socket: Dynamic) { | ||
|  | 		myId = id; | ||
|  | 		this.socket = socket; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public function send(bytes: Bytes, mandatory: Bool): Void { | ||
|  | 		socket.send(bytes.getData()); | ||
|  | 		// socket.send(bytes.getData(), {binary: true}); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public function receive(receiver: Bytes->Void): Void { | ||
|  | 		socket.on('message', function(message) { | ||
|  | 			// js.Node.console.log(message); | ||
|  | 			receiver(Bytes.ofData(message)); | ||
|  | 		}); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public function onClose(close: Void->Void): Void { | ||
|  | 		socket.onclose = function() { | ||
|  | 			close(); | ||
|  | 		}; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public var controllers(get, null): Array<Controller>; | ||
|  | 
 | ||
|  | 	function get_controllers(): Array<Controller> { | ||
|  | 		return null; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public var id(get, null): Int; | ||
|  | 
 | ||
|  | 	function get_id(): Int { | ||
|  | 		return myId; | ||
|  | 	} | ||
|  | } |