websocket

Version: stable

FUNCTION
websocket.connect()
websocket.disconnect()
websocket.send()
CONSTANT
EVENT_CONNECTED
EVENT_DISCONNECTED
EVENT_MESSAGE
EVENT_ERROR

Functions

websocket.connect()

websocket.connect(url,params,callback)

Connects to a remote address

PARAMETERS

url string url of the remote connection
params table optional parameters as properties. The following parameters can be set
timeout number Timeout for the connection sequence (milliseconds). Not used on HTML5. (Default is 3000)
protocol string the protocol to use (e.g. 'chat'). If not set, no `Sec-WebSocket-Protocol` header is sent.
headers string list of http headers. Each pair is separated with "\r\n". Not used on HTML5.
callback function callback that receives all messages from the connection
self object The script instance that was used to register the callback
connection object the connection
data table the event payload
event number The current event. One of the following - `websocket.EVENT_CONNECTED` - `websocket.EVENT_DISCONNECTED` - `websocket.EVENT_ERROR` - `websocket.EVENT_MESSAGE`
message string The received data if event is `websocket.EVENT_MESSAGE`. Error message otherwise
handshake_response table Handshake response information (status, headers etc)
code number Status code received from the server if the server closed the connection. Only present if event is `EVENT_DISCONNECTED`.

RETURNS

object the connection

EXAMPLES

  local function websocket_callback(self, conn, data)
    if data.event == websocket.EVENT_DISCONNECTED then
      log("Disconnected: " .. tostring(conn))
      self.connection = nil
      update_gui(self)
    elseif data.event == websocket.EVENT_CONNECTED then
      update_gui(self)
      log("Connected: " .. tostring(conn))
    elseif data.event == websocket.EVENT_ERROR then
      log("Error: '" .. data.message .. "'")
    elseif data.event == websocket.EVENT_MESSAGE then
      log("Receiving: '" .. tostring(data.message) .. "'")
    end
  end

  function init(self)
    self.url = "ws://echo.websocket.events"
    local params = {
      timeout = 3000,
      headers = "Sec-WebSocket-Protocol: chat\r\nOrigin: mydomain.com\r\n"
    }
    self.connection = websocket.connect(self.url, params, websocket_callback)
  end

  function finalize(self)
      if self.connection ~= nil then
        websocket.disconnect(self.connection)
      end
  end

websocket.disconnect()

websocket.disconnect(connection)

Explicitly close a websocket

PARAMETERS

connection object the websocket connection

websocket.send()

websocket.send(connection,message,options)

Send data on a websocket

PARAMETERS

connection object the websocket connection
message string the message to send
options table options for this particular message. May be `nil`
type number The data type of the message - `websocket.DATA_TYPE_BINARY` (default) - `websocket.DATA_TYPE_TEXT`

EXAMPLES

  local function websocket_callback(self, conn, data)
    if data.event == websocket.EVENT_CONNECTED then
      websocket.send(conn, "Hello from the other side")
    end
  end

  function init(self)
    self.url = "ws://echo.websocket.org"
    local params = {}
    self.connection = websocket.connect(self.url, params, websocket_callback)
  end

Constants

EVENT_CONNECTED

The websocket was connected


EVENT_DISCONNECTED

The websocket disconnected


EVENT_MESSAGE

The websocket received data


EVENT_ERROR

The websocket encountered an error