SWebService

Set up your web service

To setup your server for communication with space, in the root of your domain, on the port you are using, place a file named 'sinewave.space.scripting.txt' containing 'SPACE_OK'. E.g. http://somewhere.com/sinewave.space.scripting.txt - if this file is not present, you will be unable to use scripting to communicate with the domain. Note: you should use HTTPS for all API calls if you want these to work reliably in WebGL. You may also need to implement a CORS policy in your webserver headers.

Index

Functions Index

Function Name

void Get (string url, Closure onComplete, Table headers=null, float timeout=0)

void Post (string url, string data, Closure onComplete, Table headers=null, float timeout=0)

SResource GetImage (string url, Closure onComplete=null, Table header=null, float timeout=0)

Functions

Get

void Get (string url, Closure onComplete, Table headers=null, float timeout=0)

Performs a HTTP[S] GET against URL and returns the contents as a SWebResponse

ParameterTypeDescription

function OnResponseFunction(responseData)
--
end
Space.WebServices.Get('A URL', OnResponseFunction)
--For example, you want to get a game data from your domain
local userID = "AvatarID" --You can using Space.Scene.PlayerAvatar to get the current player's info
local gameID = "GameID" --Just an example, like you have more than one game hosted
local sentData = "http://www.yourdomain.net/getGameData.php?id=" .. userID .. "&game=" .. gameID

local response = function(data)
  if data.Error == nil then
    Space.Log(data.Response)
  else 
    Space.Log(data.Error)
  end
end

Space.WebServices.Get(sentData, response)
--Phase the response to get what you need

Post

void Post (string url, string data, Closure onComplete, Table headers=null, float timeout=0)

Performs a HTTP[S] POST against URL using data as a post string and returns the contents as a SWebResponse

ParameterTypeDescription

function OnResponseFunction(responseData)
--
end
Space.WebServices.Post('A URL', OnResponseFunction)
local userID = "AvatarID"
local gameID = "GameID"
local url = "http://www.yourdomain.net/getGameData.php"
local sentData = "id=" .. userID .. "&game=" .. gameID

local response = function(data)
  if data.Error == nil then
    Space.Log(data.Response)
  else 
    Space.Log(data.Error)
  end
end

Space.WebServices.Post(url, sentData, response)
-- Like the example above, just using http(s) post method.

GetImage

SResource GetImage (string url, Closure onComplete=null, Table header=null, float timeout=0)

Returns a valid SResource for a image on a remote domain that can be used via e.g. SMaterial. While the image loads, it will be a white pixel that will be substituted with the real image once loaded.

ParameterTypeDescription

resourceImage = Space.WebServices.GetImage('An Image URL')
 image = "mrlee.jpg"
 server = "https://middleware.systems/"
 obj = Space.Host.GetReference("dispobj")
 
 resrc = Space.WebServices.GetImage(server .. "mrlee.jpg")
 obj.Renderer.Material.SetTexture("_MainTex", resrc)

Last updated

Sinespace® is a registered trademark of Sine Wave Entertainment Ltd, All Rights Reserved.