Difference between revisions of "Unite Server Method list"
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | __TOC__ | |
− | |||
= Gideros Unite Framework = | = Gideros Unite Framework = | ||
== Server Method list == | == Server Method list == | ||
Line 108: | Line 107: | ||
'''Example''' | '''Example''' | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
− | serverlink: | + | serverlink:callMethodOf("draw", 100, 200, 111222333) |
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 08:53, 26 August 2024
Gideros Unite Framework
Server Method list
Constructor
Method name new(config)
Description Create server instance
Input parameters table config - lua table with configuration options:
- string username - username to display on devices (default: hostname or device's IP address)
- string ip - ip address to use for server (default: curret devices IP address)
- int tcpPort - port to use for tcp connection (default: 5883)
- int udpPort - port to use for udp connection (default: 5884)
- int discoveryPort - port to use for device discovery (default: 5885)
- int multicast - multicast ip address for device discovery (default: 239.192.1.1)
- int maxClients - maximal amount of clients server can serve (default: unlimited amount)
- string connectionType - which connection protocol to use tcp, udp or both (default: 'both')
Example
local serverlink = Server.new({
username = "IAmAServer",
ip = nil,
port = 15000,
multicast = "239.192.1.1",
maxClients = 0,
connectionType = "tcp"
})
Start Broadcasting
Method name startBroadcast()
Description Start Broadcasting to clients, both broadcast and multicast to discover other listening devices. Broadcasting includes listening, so if server is broadcasting, there is no need to call startListening method
Stop Broadcasting
Method name stopBroadcast()
Description Stop Broadcasting to clients
Start Listening
Method name startListening()
Description Start Listening to clients
Stop Listening
Method name stopListening()
Description Stop Listening to clients
Accept specified Client
Method name accept(id)
Description When client responded to broadcasting/multicasting message, server receives new client events with client ID. You need to provide that ID to the accept method to accept the specified client
Input parameters int id - client id received from new client event
Example
serverlink:accept(111222333)
Add Method
Method name addMethod(name, method, scope)
Description Add method which can be called through the network by other devices
Input parameters Input parameters are similar to adding new event listener
string name - name of command to associate with this method, could be simply method name as string
function method - method that will be called from other connected devices. This function will be called by other devices, and all parameters provided by other devices will be passed to this function. Additionally, the last providd parameter will be the source of message - id of device from which message originated
object scope - scope to use for method, if for example using class method and not simple function, you can provide self variable if defined inside class, of class instance if defiend outside class (default: nil)
Example
serverlink:addMethod("draw", self.draw, self)
Call Method
Method name callMethod(...)
Description Call specific method for all connected devices
Input parameters string command - name of command, to call the method associated with this command
Other parameters can be any values, that will be passed to called method
Example
serverlink:callMethod("draw", 100, 200)
Call Method of specific device
Method name callMethodOf(...)
Description Call specific method for specific connected devices
Input parameters string command - name of command, to call the method associated with this command
Other parameters can be any values, that will be passed to called method
Last parameter should be the ID of device, to which to send command
Example
serverlink:callMethodOf("draw", 100, 200, 111222333)
Get devices
Method name getDevices()
Description Get ID of all devices connected to server. Due to limitation, that ID's of devices are retrieved through sockets on the network, this method does not return list of devices, but rather generates multiple "device" events, one for each connected device
Example
serverlink:getDevices()
Close Server
Method name close()
Description Closes the server, disconnects all clients, disables listening and/or broadcasting and erases ID. Serves as destructor for the class
Example
serverlink:close()