Newer
Older
BlackoutClient / Assets / Plugins / WebSocket.jslib
mergeInto(LibraryManager.library, {
	Constructor: function (urlPtr)
	{
		var url = Pointer_stringify(urlPtr);
		if (window.unity_sockets === undefined)
		{
			window.unity_sockets = {next_socket_id: 0};
		}
		var socketId = window.unity_sockets.next_socket_id++;
		var key = "socket" + socketId;

		var ws = new WebSocket(url);		
		var events = [];
		
		ws.onclose = function(event)
		{
		};
		ws.onerror = function(event)
		{
		};
		ws.onmessage = function(event)
		{
		};
		ws.onopen = function(event)
		{
		};

		window.unity_sockets[key] = {ws: ws, events:events};

		return socketId;
	},

	ReadyState: function (socketId)
	{
		var key = "socket" + socketId;
		if (window.unity_sockets === undefined || window.unity_sockets[key] === undefined) return -1;
		
		var ws = window.unity_sockets[key].ws;
		return ws.readyState;
	}
	
	Poll: function(socketId)
	{
		var key = "socket" + socketId;
		if (window.unity_sockets === undefined || window.unity_sockets[key] === undefined) return 0;
		
		var events = window.unity_sockets[key].events;
		if (events.length == 0) return 0;
		
		return events[0].event_type;
	}

	/*
	PrintFloatArray: function (array, size)
	{
		for(var i = 0; i < size; i++)
		{
			console.log(HEAPF32[(array >> 2) + i]);
		}
	},

	AddNumbers: function (x, y)
	{
		return x + y;
	},

	StringReturnValueFunction: function ()
	{
		var returnStr = "bla";
		var bufferSize = lengthBytesUTF8(returnStr) + 1;
		var buffer = _malloc(bufferSize);
		stringToUTF8(returnStr, buffer, bufferSize);
		return buffer;
	},

	BindWebGLTexture: function (texture)
	{
		GLctx.bindTexture(GLctx.TEXTURE_2D, GL.textures[texture]);
	},
	*/

});