3851 lines
93 KiB
HTML
3851 lines
93 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head lang="en">
|
|
<title>sock.lua Documentation</title>
|
|
<meta charset="utf-8">
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css" rel="styleshet">
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/milligram/1.3.0/milligram.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="ldoc.css">
|
|
</head>
|
|
<body>
|
|
|
|
|
|
<input type="checkbox" id="sidebar_toggle" class="sidebar_toggle" role="button">
|
|
<label class="sidebar_toggle_label" for="sidebar_toggle"></label>
|
|
|
|
<div class="sidebar">
|
|
<div class="table-of-contents">
|
|
<h2><a href="#Tables">Tables</a></h2>
|
|
<div class="function_list">
|
|
<div class="name" ><a href="#CONNECTING_STATES">CONNECTING_STATES</a></div>
|
|
<div class="name" ><a href="#CONNECTION_STATES">CONNECTION_STATES</a></div>
|
|
<div class="name" ><a href="#DISCONNECTING_STATES">DISCONNECTING_STATES</a></div>
|
|
<div class="name" ><a href="#SEND_MODES">SEND_MODES</a></div>
|
|
</div>
|
|
<br>
|
|
<h2><a href="#Class_Server">Class Server </a></h2>
|
|
<div class="function_list">
|
|
<div class="name" ><a href="#Server:destroy">Server:destroy()</a></div>
|
|
<div class="name" ><a href="#Server:enableCompression">Server:enableCompression()</a></div>
|
|
<div class="name" ><a href="#Server:getAddress">Server:getAddress()</a></div>
|
|
<div class="name" ><a href="#Server:getClient">Server:getClient(peer)</a></div>
|
|
<div class="name" ><a href="#Server:getClientByConnectId">Server:getClientByConnectId(connectId)</a></div>
|
|
<div class="name" ><a href="#Server:getClientByIndex">Server:getClientByIndex(index)</a></div>
|
|
<div class="name" ><a href="#Server:getClientCount">Server:getClientCount()</a></div>
|
|
<div class="name" ><a href="#Server:getClients">Server:getClients()</a></div>
|
|
<div class="name" ><a href="#Server:getDefaultSendMode">Server:getDefaultSendMode()</a></div>
|
|
<div class="name" ><a href="#Server:getLastServiceTime">Server:getLastServiceTime()</a></div>
|
|
<div class="name" ><a href="#Server:getMaxChannels">Server:getMaxChannels()</a></div>
|
|
<div class="name" ><a href="#Server:getMaxPeers">Server:getMaxPeers()</a></div>
|
|
<div class="name" ><a href="#Server:getMessageTimeout">Server:getMessageTimeout()</a></div>
|
|
<div class="name" ><a href="#Server:getPeerByIndex">Server:getPeerByIndex(index)</a></div>
|
|
<div class="name" ><a href="#Server:getPort">Server:getPort()</a></div>
|
|
<div class="name" ><a href="#Server:getSendMode">Server:getSendMode()</a></div>
|
|
<div class="name" ><a href="#Server:getSocketAddress">Server:getSocketAddress()</a></div>
|
|
<div class="name" ><a href="#Server:getTotalReceivedData">Server:getTotalReceivedData()</a></div>
|
|
<div class="name" ><a href="#Server:getTotalReceivedPackets">Server:getTotalReceivedPackets()</a></div>
|
|
<div class="name" ><a href="#Server:getTotalSentData">Server:getTotalSentData()</a></div>
|
|
<div class="name" ><a href="#Server:getTotalSentPackets">Server:getTotalSentPackets()</a></div>
|
|
<div class="name" ><a href="#Server:log">Server:log(event, data)</a></div>
|
|
<div class="name" ><a href="#Server:on">Server:on(event, callback)</a></div>
|
|
<div class="name" ><a href="#Server:removeCallback">Server:removeCallback(callback)</a></div>
|
|
<div class="name" ><a href="#Server:resetSendSettings">Server:resetSendSettings()</a></div>
|
|
<div class="name" ><a href="#Server:sendToAll">Server:sendToAll(event, data)</a></div>
|
|
<div class="name" ><a href="#Server:sendToAllBut">Server:sendToAllBut(client, event, data)</a></div>
|
|
<div class="name" ><a href="#Server:sendToPeer">Server:sendToPeer(peer, event, data)</a></div>
|
|
<div class="name" ><a href="#Server:setBandwidthLimit">Server:setBandwidthLimit(incoming, outgoing)</a></div>
|
|
<div class="name" ><a href="#Server:setDefaultSendChannel">Server:setDefaultSendChannel(channel)</a></div>
|
|
<div class="name" ><a href="#Server:setDefaultSendMode">Server:setDefaultSendMode(mode)</a></div>
|
|
<div class="name" ><a href="#Server:setMaxChannels">Server:setMaxChannels(limit)</a></div>
|
|
<div class="name" ><a href="#Server:setMessageTimeout">Server:setMessageTimeout(timeout)</a></div>
|
|
<div class="name" ><a href="#Server:setSchema">Server:setSchema(event, schema)</a></div>
|
|
<div class="name" ><a href="#Server:setSendChannel">Server:setSendChannel(channel)</a></div>
|
|
<div class="name" ><a href="#Server:setSendMode">Server:setSendMode(mode)</a></div>
|
|
<div class="name" ><a href="#Server:setSerialization">Server:setSerialization(serialize, deserialize)</a></div>
|
|
<div class="name" ><a href="#Server:update">Server:update()</a></div>
|
|
</div>
|
|
<br>
|
|
<h2><a href="#Class_Client">Class Client </a></h2>
|
|
<div class="function_list">
|
|
<div class="name" ><a href="#Client:connect">Client:connect(code)</a></div>
|
|
<div class="name" ><a href="#Client:disconnect">Client:disconnect(code)</a></div>
|
|
<div class="name" ><a href="#Client:disconnectLater">Client:disconnectLater(code)</a></div>
|
|
<div class="name" ><a href="#Client:disconnectNow">Client:disconnectNow(code)</a></div>
|
|
<div class="name" ><a href="#Client:enableCompression">Client:enableCompression()</a></div>
|
|
<div class="name" ><a href="#Client:getAddress">Client:getAddress()</a></div>
|
|
<div class="name" ><a href="#Client:getConnectId">Client:getConnectId()</a></div>
|
|
<div class="name" ><a href="#Client:getDefaultSendMode">Client:getDefaultSendMode()</a></div>
|
|
<div class="name" ><a href="#Client:getIndex">Client:getIndex()</a></div>
|
|
<div class="name" ><a href="#Client:getLastServiceTime">Client:getLastServiceTime()</a></div>
|
|
<div class="name" ><a href="#Client:getMaxChannels">Client:getMaxChannels()</a></div>
|
|
<div class="name" ><a href="#Client:getMessageTimeout">Client:getMessageTimeout()</a></div>
|
|
<div class="name" ><a href="#Client:getPeerByIndex">Client:getPeerByIndex(index)</a></div>
|
|
<div class="name" ><a href="#Client:getPort">Client:getPort()</a></div>
|
|
<div class="name" ><a href="#Client:getRoundTripTime">Client:getRoundTripTime()</a></div>
|
|
<div class="name" ><a href="#Client:getSendMode">Client:getSendMode()</a></div>
|
|
<div class="name" ><a href="#Client:getSocketAddress">Client:getSocketAddress()</a></div>
|
|
<div class="name" ><a href="#Client:getState">Client:getState()</a></div>
|
|
<div class="name" ><a href="#Client:getTotalReceivedData">Client:getTotalReceivedData()</a></div>
|
|
<div class="name" ><a href="#Client:getTotalReceivedPackets">Client:getTotalReceivedPackets()</a></div>
|
|
<div class="name" ><a href="#Client:getTotalSentData">Client:getTotalSentData()</a></div>
|
|
<div class="name" ><a href="#Client:getTotalSentPackets">Client:getTotalSentPackets()</a></div>
|
|
<div class="name" ><a href="#Client:isConnected">Client:isConnected()</a></div>
|
|
<div class="name" ><a href="#Client:isConnecting">Client:isConnecting()</a></div>
|
|
<div class="name" ><a href="#Client:isDisconnected">Client:isDisconnected()</a></div>
|
|
<div class="name" ><a href="#Client:isDisconnecting">Client:isDisconnecting()</a></div>
|
|
<div class="name" ><a href="#Client:log">Client:log(event, data)</a></div>
|
|
<div class="name" ><a href="#Client:on">Client:on(event, callback)</a></div>
|
|
<div class="name" ><a href="#Client:removeCallback">Client:removeCallback(callback)</a></div>
|
|
<div class="name" ><a href="#Client:reset">Client:reset(client)</a></div>
|
|
<div class="name" ><a href="#Client:resetSendSettings">Client:resetSendSettings()</a></div>
|
|
<div class="name" ><a href="#Client:send">Client:send(event, data)</a></div>
|
|
<div class="name" ><a href="#Client:setBandwidthLimit">Client:setBandwidthLimit(incoming, outgoing)</a></div>
|
|
<div class="name" ><a href="#Client:setDefaultSendChannel">Client:setDefaultSendChannel(channel)</a></div>
|
|
<div class="name" ><a href="#Client:setDefaultSendMode">Client:setDefaultSendMode(mode)</a></div>
|
|
<div class="name" ><a href="#Client:setMaxChannels">Client:setMaxChannels(limit)</a></div>
|
|
<div class="name" ><a href="#Client:setMessageTimeout">Client:setMessageTimeout(timeout)</a></div>
|
|
<div class="name" ><a href="#Client:setPingInterval">Client:setPingInterval(interval)</a></div>
|
|
<div class="name" ><a href="#Client:setSchema">Client:setSchema(event, schema)</a></div>
|
|
<div class="name" ><a href="#Client:setSendChannel">Client:setSendChannel(channel)</a></div>
|
|
<div class="name" ><a href="#Client:setSendMode">Client:setSendMode(mode)</a></div>
|
|
<div class="name" ><a href="#Client:setSerialization">Client:setSerialization(serialize, deserialize)</a></div>
|
|
<div class="name" ><a href="#Client:setThrottle">Client:setThrottle(interval, acceleration, deceleration)</a></div>
|
|
<div class="name" ><a href="#Client:setTimeout">Client:setTimeout(limit, minimum, maximum)</a></div>
|
|
<div class="name" ><a href="#Client:update">Client:update()</a></div>
|
|
</div>
|
|
<br>
|
|
<h2><a href="#sock">sock</a></h2>
|
|
<div class="function_list">
|
|
<div class="name" ><a href="#newClient">newClient(serverOrAddress, port, maxChannels)</a></div>
|
|
<div class="name" ><a href="#newServer">newServer(address, port, maxPeers, maxChannels, inBandwidth, outBandwidth)</a></div>
|
|
</div>
|
|
<br>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="contents">
|
|
|
|
<!-- Header -->
|
|
<header class="header">
|
|
<h1 class="project-title">sock.lua</h1>
|
|
</header>
|
|
|
|
<div id="main">
|
|
|
|
<!-- Menu -->
|
|
|
|
<div id="content">
|
|
|
|
|
|
<p>A Lua networking library for LÖVE games.</p>
|
|
<p>
|
|
|
|
<ul>
|
|
<li><a href="https://github.com/camchenry/sock.lua">Source code</a></li>
|
|
<li><a href="https://github.com/camchenry/sock.lua/tree/master/examples">Examples</a></li>
|
|
</ul>
|
|
</p>
|
|
|
|
<section class="section" id="Tables">
|
|
<h1 class="section-header "><a name="Tables"></a>Tables</h1>
|
|
<div class="section-content">
|
|
|
|
<dl class="function">
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#CONNECTING_STATES" name="CONNECTING_STATES">🔗</a>
|
|
<h3 class="function_name">CONNECTING_STATES</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
States that represent the client connecting to a server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Fields:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">connecting</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
In the process of connecting to the server.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">acknowledging_connect</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">connection_pending</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">connection_succeeded</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#CONNECTION_STATES" name="CONNECTION_STATES">🔗</a>
|
|
<h3 class="function_name">CONNECTION_STATES</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
All of the possible connection statuses for a client connection.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Fields:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">disconnected</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Disconnected from the server.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">connecting</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
In the process of connecting to the server.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">acknowledging_connect</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">connection_pending</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">connection_succeeded</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">connected</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Successfully connected to the server.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">disconnect_later</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Disconnecting, but only after sending all queued packets.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">disconnecting</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
In the process of disconnecting from the server.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">acknowledging_disconnect</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">zombie</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">unknown</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#Client:getState">Client:getState</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#DISCONNECTING_STATES" name="DISCONNECTING_STATES">🔗</a>
|
|
<h3 class="function_name">DISCONNECTING_STATES</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
States that represent the client disconnecting from a server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Fields:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">disconnect_later</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Disconnecting, but only after sending all queued packets.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">disconnecting</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
In the process of disconnecting from the server.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">acknowledging_disconnect</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#SEND_MODES" name="SEND_MODES">🔗</a>
|
|
<h3 class="function_name">SEND_MODES</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Valid modes for sending messages.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Fields:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">reliable</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Message is guaranteed to arrive, and arrive in the order in which it is sent.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">unsequenced</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Message has no guarantee on the order that it arrives.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">unreliable</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Message is not guaranteed to arrive.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section class="section" id="Server">
|
|
<h1 class="section-header has-description"><a name="Class_Server"></a>Class Server </h1>
|
|
<div class="section-content">
|
|
|
|
<p class="section-description">
|
|
Manages all clients and receives network events.
|
|
</p>
|
|
<dl class="function">
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:destroy" name="Server:destroy">🔗</a>
|
|
<h3 class="function_name">Server:destroy()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Destroys the server and frees the port it is bound to.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:enableCompression" name="Server:enableCompression">🔗</a>
|
|
<h3 class="function_name">Server:enableCompression()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Enables an adaptive order-2 PPM range coder for the transmitted data of all peers.
|
|
</p>
|
|
<p class="description">
|
|
Both the client and server must both either have compression enabled or disabled.</p>
|
|
|
|
<p> Note: lua-enet does not currently expose a way to disable the compression after it has been enabled.
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getAddress" name="Server:getAddress">🔗</a>
|
|
<h3 class="function_name">Server:getAddress()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the IP address or hostname that the server was created with.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getClient" name="Server:getClient">🔗</a>
|
|
<h3 class="function_name">Server:getClient(peer)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Gets the Client object associated with an enet peer.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">peer</span></span>
|
|
<span class="parameter">peer</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
An enet peer.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><a class="type" href="#Client">Client</a></span>
|
|
Object associated with the peer.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getClientByConnectId" name="Server:getClientByConnectId">🔗</a>
|
|
<h3 class="function_name">Server:getClientByConnectId(connectId)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Gets the Client object that has the given connection id.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">connectId</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The unique client connection id.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><a class="type" href="#Client">Client</a></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getClientByIndex" name="Server:getClientByIndex">🔗</a>
|
|
<h3 class="function_name">Server:getClientByIndex(index)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the Client object that has the given peer index.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">index</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><a class="type" href="#Client">Client</a></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getClientCount" name="Server:getClientCount">🔗</a>
|
|
<h3 class="function_name">Server:getClientCount()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the number of Clients that are currently connected to the server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The number of active clients.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getClients" name="Server:getClients">🔗</a>
|
|
<h3 class="function_name">Server:getClients()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the table of Clients actively connected to the server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
{Client,...}
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getDefaultSendMode" name="Server:getDefaultSendMode">🔗</a>
|
|
<h3 class="function_name">Server:getDefaultSendMode()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the default send mode.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getLastServiceTime" name="Server:getLastServiceTime">🔗</a>
|
|
<h3 class="function_name">Server:getLastServiceTime()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the last time when network events were serviced.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
Timestamp of the last time events were serviced.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getMaxChannels" name="Server:getMaxChannels">🔗</a>
|
|
<h3 class="function_name">Server:getMaxChannels()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the number of allocated channels.
|
|
</p>
|
|
<p class="description">
|
|
Channels are zero-indexed, e.g. 16 channels allocated means that the
|
|
maximum channel that can be used is 15.
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
Number of allocated channels.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getMaxPeers" name="Server:getMaxPeers">🔗</a>
|
|
<h3 class="function_name">Server:getMaxPeers()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the number of allocated slots for peers.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
Number of allocated slots.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getMessageTimeout" name="Server:getMessageTimeout">🔗</a>
|
|
<h3 class="function_name">Server:getMessageTimeout()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the timeout for packets.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
Time to wait for incoming packets in milliseconds.
|
|
initial default is 0.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getPeerByIndex" name="Server:getPeerByIndex">🔗</a>
|
|
<h3 class="function_name">Server:getPeerByIndex(index)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the enet_peer that has the given index.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">index</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">enet_peer</span></span>
|
|
The underlying enet peer object.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getPort" name="Server:getPort">🔗</a>
|
|
<h3 class="function_name">Server:getPort()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the port that the server is hosted on.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getSendMode" name="Server:getSendMode">🔗</a>
|
|
<h3 class="function_name">Server:getSendMode()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the current send mode.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getSocketAddress" name="Server:getSocketAddress">🔗</a>
|
|
<h3 class="function_name">Server:getSocketAddress()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the socket address of the host.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
A description of the socket address, in the format
|
|
"A.B.C.D:port" where A.B.C.D is the IP address of the used socket.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getTotalReceivedData" name="Server:getTotalReceivedData">🔗</a>
|
|
<h3 class="function_name">Server:getTotalReceivedData()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total received data since the server was created.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total received data in bytes.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getTotalReceivedPackets" name="Server:getTotalReceivedPackets">🔗</a>
|
|
<h3 class="function_name">Server:getTotalReceivedPackets()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total number of packets (messages) received since the server was created.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total number of received packets.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#Server:getTotalSentPackets">Server:getTotalSentPackets</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getTotalSentData" name="Server:getTotalSentData">🔗</a>
|
|
<h3 class="function_name">Server:getTotalSentData()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total sent data since the server was created.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total sent data in bytes.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:getTotalSentPackets" name="Server:getTotalSentPackets">🔗</a>
|
|
<h3 class="function_name">Server:getTotalSentPackets()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total number of packets (messages) sent since the server was created.
|
|
</p>
|
|
<p class="description">
|
|
Everytime a message is sent or received, the corresponding figure is incremented.
|
|
Therefore, this is not necessarily an accurate indicator of how many packets were actually
|
|
exchanged over the network.
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total number of sent packets.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:log" name="Server:log">🔗</a>
|
|
<h3 class="function_name">Server:log(event, data)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Log an event.
|
|
</p>
|
|
<p class="description">
|
|
Alias for Server.logger:log.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The type of event that happened.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">data</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The message to log.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example"><span class="keyword">if</span> somethingBadHappened <span class="keyword">then</span>
|
|
server:log(<span class="string">"error"</span>, <span class="string">"Something bad happened!"</span>)
|
|
<span class="keyword">end</span></pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:on" name="Server:on">🔗</a>
|
|
<h3 class="function_name">Server:on(event, callback)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Add a callback to an event.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event that will trigger the callback.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">callback</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The callback to be triggered.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">function</span></span>
|
|
The callback that was passed in.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">server:on(<span class="string">"connect"</span>, <span class="keyword">function</span>(data, client)
|
|
<span class="global">print</span>(<span class="string">"Client connected!"</span>)
|
|
<span class="keyword">end</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:removeCallback" name="Server:removeCallback">🔗</a>
|
|
<h3 class="function_name">Server:removeCallback(callback)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Remove a specific callback for an event.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">callback</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The callback to remove.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">boolean</span></span>
|
|
Whether or not the callback was removed.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example"><span class="keyword">local</span> callback = server:on(<span class="string">"chatMessage"</span>, <span class="keyword">function</span>(message)
|
|
<span class="global">print</span>(message)
|
|
<span class="keyword">end</span>)
|
|
server:removeCallback(callback)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:resetSendSettings" name="Server:resetSendSettings">🔗</a>
|
|
<h3 class="function_name">Server:resetSendSettings()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Reset all send options to their default values.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:sendToAll" name="Server:sendToAll">🔗</a>
|
|
<h3 class="function_name">Server:sendToAll(event, data)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Send a message to all clients.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event to trigger with this message.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">data</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The data to send.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">server:sendToAll(<span class="string">"gameStarting"</span>, <span class="keyword">true</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:sendToAllBut" name="Server:sendToAllBut">🔗</a>
|
|
<h3 class="function_name">Server:sendToAllBut(client, event, data)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Send a message to all clients, except one.
|
|
</p>
|
|
<p class="description">
|
|
Useful for when the client does something locally, but other clients
|
|
need to be updated at the same time. This way avoids duplicating objects by
|
|
never sending its own event to itself in the first place.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><a class="type" href="#Client">Client</a></span>
|
|
<span class="parameter">client</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The client to not receive the message.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event to trigger with this message.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">data</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The data to send.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:sendToPeer" name="Server:sendToPeer">🔗</a>
|
|
<h3 class="function_name">Server:sendToPeer(peer, event, data)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Send a message to a single peer.
|
|
</p>
|
|
<p class="description">
|
|
Useful to send data to a newly connected player
|
|
without sending to everyone who already received it.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">enet_peer</span></span>
|
|
<span class="parameter">peer</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The enet peer to receive the message.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event to trigger with this message.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">data</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
data to send to the peer.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">server:sendToPeer(peer, <span class="string">"initialGameInfo"</span>, {...})</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setBandwidthLimit" name="Server:setBandwidthLimit">🔗</a>
|
|
<h3 class="function_name">Server:setBandwidthLimit(incoming, outgoing)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the incoming and outgoing bandwidth limits.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">incoming</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The maximum incoming bandwidth in bytes.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">outgoing</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The maximum outgoing bandwidth in bytes.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setDefaultSendChannel" name="Server:setDefaultSendChannel">🔗</a>
|
|
<h3 class="function_name">Server:setDefaultSendChannel(channel)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the default send channel for all future outgoing messages.
|
|
</p>
|
|
<p class="description">
|
|
The initial default is 0.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">channel</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Channel to send data on.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setDefaultSendMode" name="Server:setDefaultSendMode">🔗</a>
|
|
<h3 class="function_name">Server:setDefaultSendMode(mode)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the default send mode for all future outgoing messages.
|
|
</p>
|
|
<p class="description">
|
|
|
|
The initial default is "reliable".
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">mode</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A valid send mode.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setMaxChannels" name="Server:setMaxChannels">🔗</a>
|
|
<h3 class="function_name">Server:setMaxChannels(limit)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the maximum number of channels.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">limit</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The maximum number of channels allowed. If it is 0,
|
|
then the maximum number of channels available on the system will be used.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setMessageTimeout" name="Server:setMessageTimeout">🔗</a>
|
|
<h3 class="function_name">Server:setMessageTimeout(timeout)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the timeout to wait for packets.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">timeout</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Time to wait for incoming packets in milliseconds. The
|
|
initial default is 0.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setSchema" name="Server:setSchema">🔗</a>
|
|
<h3 class="function_name">Server:setSchema(event, schema)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the data schema for an event.
|
|
</p>
|
|
<p class="description">
|
|
Schemas allow you to set a specific format that the data will be sent. If the
|
|
client and server both know the format ahead of time, then the table keys
|
|
do not have to be sent across the network, which saves bandwidth.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event to set the data schema for.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">{string,...}</span></span>
|
|
<span class="parameter">schema</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The data schema.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">server = sock.newServer(...)
|
|
client = sock.newClient(...)
|
|
|
|
<span class="comment">-- Without schemas
|
|
</span>client:send(<span class="string">"update"</span>, {
|
|
x = <span class="number">4</span>,
|
|
y = <span class="number">100</span>,
|
|
vx = -<span class="number">4.5</span>,
|
|
vy = <span class="number">23.1</span>,
|
|
rotation = <span class="number">1.4365</span>,
|
|
})
|
|
server:on(<span class="string">"update"</span>, <span class="keyword">function</span>(data, client)
|
|
<span class="comment">-- data = {
|
|
</span> <span class="comment">-- x = 4,
|
|
</span> <span class="comment">-- y = 100,
|
|
</span> <span class="comment">-- vx = -4.5,
|
|
</span> <span class="comment">-- vy = 23.1,
|
|
</span> <span class="comment">-- rotation = 1.4365,
|
|
</span> <span class="comment">-- }
|
|
</span><span class="keyword">end</span>)
|
|
|
|
|
|
<span class="comment">-- With schemas
|
|
</span>server:setSchema(<span class="string">"update"</span>, {
|
|
<span class="string">"x"</span>,
|
|
<span class="string">"y"</span>,
|
|
<span class="string">"vx"</span>,
|
|
<span class="string">"vy"</span>,
|
|
<span class="string">"rotation"</span>,
|
|
})
|
|
<span class="comment">-- client no longer has to send the keys, saving bandwidth
|
|
</span>client:send(<span class="string">"update"</span>, {
|
|
<span class="number">4</span>,
|
|
<span class="number">100</span>,
|
|
-<span class="number">4.5</span>,
|
|
<span class="number">23.1</span>,
|
|
<span class="number">1.4365</span>,
|
|
})
|
|
server:on(<span class="string">"update"</span>, <span class="keyword">function</span>(data, client)
|
|
<span class="comment">-- data = {
|
|
</span> <span class="comment">-- x = 4,
|
|
</span> <span class="comment">-- y = 100,
|
|
</span> <span class="comment">-- vx = -4.5,
|
|
</span> <span class="comment">-- vy = 23.1,
|
|
</span> <span class="comment">-- rotation = 1.4365,
|
|
</span> <span class="comment">-- }
|
|
</span><span class="keyword">end</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setSendChannel" name="Server:setSendChannel">🔗</a>
|
|
<h3 class="function_name">Server:setSendChannel(channel)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the send channel for the next outgoing message.
|
|
</p>
|
|
<p class="description">
|
|
|
|
The channel will be reset after the next message. Channels are zero-indexed
|
|
and cannot exceed the maximum number of channels allocated. The initial
|
|
default is 0.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">channel</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Channel to send data on.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">server:setSendChannel(<span class="number">2</span>) <span class="comment">-- the third channel
|
|
</span>server:sendToAll(<span class="string">"importantEvent"</span>, <span class="string">"The message"</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setSendMode" name="Server:setSendMode">🔗</a>
|
|
<h3 class="function_name">Server:setSendMode(mode)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the send mode for the next outgoing message.
|
|
</p>
|
|
<p class="description">
|
|
|
|
The mode will be reset after the next message is sent. The initial default
|
|
is "reliable".
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">mode</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A valid send mode.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">server:setSendMode(<span class="string">"unreliable"</span>)
|
|
server:sendToAll(<span class="string">"playerState"</span>, {...})</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:setSerialization" name="Server:setSerialization">🔗</a>
|
|
<h3 class="function_name">Server:setSerialization(serialize, deserialize)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the serialization functions for sending and receiving data.
|
|
</p>
|
|
<p class="description">
|
|
Both the client and server must share the same serialization method.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">serialize</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The serialization function to use.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">deserialize</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The deserialization function to use.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">bitser = <span class="global">require</span> <span class="string">"bitser"</span> <span class="comment">-- or any library you like
|
|
</span>server = sock.newServer(<span class="string">"localhost"</span>, <span class="number">22122</span>)
|
|
server:setSerialization(bitser.dumps, bitser.loads)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Server:update" name="Server:update">🔗</a>
|
|
<h3 class="function_name">Server:update()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Check for network events and handle them.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section class="section" id="Client">
|
|
<h1 class="section-header has-description"><a name="Class_Client"></a>Class Client </h1>
|
|
<div class="section-content">
|
|
|
|
<p class="section-description">
|
|
Connects to servers.
|
|
</p>
|
|
<dl class="function">
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:connect" name="Client:connect">🔗</a>
|
|
<h3 class="function_name">Client:connect(code)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Connect to the chosen server.
|
|
</p>
|
|
<p class="description">
|
|
Connection will not actually occur until the next time <a href="#Client:update">Client:update</a> is called.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">code</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A number that can be associated with the connect event.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:disconnect" name="Client:disconnect">🔗</a>
|
|
<h3 class="function_name">Client:disconnect(code)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Disconnect from the server, if connected.
|
|
</p>
|
|
<p class="description">
|
|
The client will disconnect the
|
|
next time that network messages are sent.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">code</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A code to associate with this disconnect event.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:disconnectLater" name="Client:disconnectLater">🔗</a>
|
|
<h3 class="function_name">Client:disconnectLater(code)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Disconnect from the server, if connected.
|
|
</p>
|
|
<p class="description">
|
|
The client will disconnect after
|
|
sending all queued packets.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">code</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A code to associate with this disconnect event.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:disconnectNow" name="Client:disconnectNow">🔗</a>
|
|
<h3 class="function_name">Client:disconnectNow(code)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Disconnect from the server, if connected.
|
|
</p>
|
|
<p class="description">
|
|
The client will disconnect immediately.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">code</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A code to associate with this disconnect event.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:enableCompression" name="Client:enableCompression">🔗</a>
|
|
<h3 class="function_name">Client:enableCompression()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Enables an adaptive order-2 PPM range coder for the transmitted data of all peers.
|
|
</p>
|
|
<p class="description">
|
|
Both the client and server must both either have compression enabled or disabled.</p>
|
|
|
|
<p> Note: lua-enet does not currently expose a way to disable the compression after it has been enabled.
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getAddress" name="Client:getAddress">🔗</a>
|
|
<h3 class="function_name">Client:getAddress()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the IP address or hostname that the client was created with.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getConnectId" name="Client:getConnectId">🔗</a>
|
|
<h3 class="function_name">Client:getConnectId()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the unique connection id, if connected.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The connection id.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getDefaultSendMode" name="Client:getDefaultSendMode">🔗</a>
|
|
<h3 class="function_name">Client:getDefaultSendMode()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the default send mode.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getIndex" name="Client:getIndex">🔗</a>
|
|
<h3 class="function_name">Client:getIndex()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the index of the enet peer.
|
|
</p>
|
|
<p class="description">
|
|
All peers of an ENet host are kept in an array. This function finds and returns the index of the peer of its host structure.
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The index of the peer.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getLastServiceTime" name="Client:getLastServiceTime">🔗</a>
|
|
<h3 class="function_name">Client:getLastServiceTime()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the last time when network events were serviced.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
Timestamp of the last time events were serviced.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getMaxChannels" name="Client:getMaxChannels">🔗</a>
|
|
<h3 class="function_name">Client:getMaxChannels()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the number of allocated channels.
|
|
</p>
|
|
<p class="description">
|
|
Channels are zero-indexed, e.g. 16 channels allocated means that the
|
|
maximum channel that can be used is 15.
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
Number of allocated channels.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getMessageTimeout" name="Client:getMessageTimeout">🔗</a>
|
|
<h3 class="function_name">Client:getMessageTimeout()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the timeout for packets.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
Time to wait for incoming packets in milliseconds.
|
|
initial default is 0.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getPeerByIndex" name="Client:getPeerByIndex">🔗</a>
|
|
<h3 class="function_name">Client:getPeerByIndex(index)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the enet_peer that has the given index.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">index</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
|
|
|
|
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">enet_peer</span></span>
|
|
The underlying enet peer object.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getPort" name="Client:getPort">🔗</a>
|
|
<h3 class="function_name">Client:getPort()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the port that the client is connecting to.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getRoundTripTime" name="Client:getRoundTripTime">🔗</a>
|
|
<h3 class="function_name">Client:getRoundTripTime()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Return the round trip time (RTT, or ping) to the server, if connected.
|
|
</p>
|
|
<p class="description">
|
|
It can take a few seconds for the time to approach an accurate value.
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The round trip time.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getSendMode" name="Client:getSendMode">🔗</a>
|
|
<h3 class="function_name">Client:getSendMode()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the current send mode.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
|
|
|
|
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getSocketAddress" name="Client:getSocketAddress">🔗</a>
|
|
<h3 class="function_name">Client:getSocketAddress()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the socket address of the host.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
A description of the socket address, in the format "A.B.C.D:port" where A.B.C.D is the IP address of the used socket.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getState" name="Client:getState">🔗</a>
|
|
<h3 class="function_name">Client:getState()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the current connection state, if connected.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">string</span></span>
|
|
The connection state.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#CONNECTION_STATES">CONNECTION_STATES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getTotalReceivedData" name="Client:getTotalReceivedData">🔗</a>
|
|
<h3 class="function_name">Client:getTotalReceivedData()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total received data since the server was created.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total received data in bytes.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getTotalReceivedPackets" name="Client:getTotalReceivedPackets">🔗</a>
|
|
<h3 class="function_name">Client:getTotalReceivedPackets()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total number of packets (messages) received since the client was created.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total number of received packets.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#Client:getTotalSentPackets">Client:getTotalSentPackets</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getTotalSentData" name="Client:getTotalSentData">🔗</a>
|
|
<h3 class="function_name">Client:getTotalSentData()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total sent data since the server was created.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total sent data in bytes.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:getTotalSentPackets" name="Client:getTotalSentPackets">🔗</a>
|
|
<h3 class="function_name">Client:getTotalSentPackets()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Get the total number of packets (messages) sent since the client was created.
|
|
</p>
|
|
<p class="description">
|
|
Everytime a message is sent or received, the corresponding figure is incremented.
|
|
Therefore, this is not necessarily an accurate indicator of how many packets were actually
|
|
exchanged over the network.
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">number</span></span>
|
|
The total number of sent packets.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:isConnected" name="Client:isConnected">🔗</a>
|
|
<h3 class="function_name">Client:isConnected()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Gets whether the client is connected to the server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">boolean</span></span>
|
|
Whether the client is connected to the server.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">client:connect()
|
|
client:isConnected() <span class="comment">-- false
|
|
</span><span class="comment">-- After a few client updates
|
|
</span>client:isConnected() <span class="comment">-- true</span></pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:isConnecting" name="Client:isConnecting">🔗</a>
|
|
<h3 class="function_name">Client:isConnecting()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Gets whether the client is connecting to the server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">boolean</span></span>
|
|
Whether the client is connected to the server.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">client:connect()
|
|
client:isConnecting() <span class="comment">-- true
|
|
</span><span class="comment">-- After a few client updates
|
|
</span>client:isConnecting() <span class="comment">-- false
|
|
</span>client:isConnected() <span class="comment">-- true</span></pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:isDisconnected" name="Client:isDisconnected">🔗</a>
|
|
<h3 class="function_name">Client:isDisconnected()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Gets whether the client is disconnected from the server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">boolean</span></span>
|
|
Whether the client is connected to the server.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">client:disconnect()
|
|
client:isDisconnected() <span class="comment">-- false
|
|
</span><span class="comment">-- After a few client updates
|
|
</span>client:isDisconnected() <span class="comment">-- true</span></pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:isDisconnecting" name="Client:isDisconnecting">🔗</a>
|
|
<h3 class="function_name">Client:isDisconnecting()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Gets whether the client is disconnecting from the server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">boolean</span></span>
|
|
Whether the client is connected to the server.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">client:disconnect()
|
|
client:isDisconnecting() <span class="comment">-- true
|
|
</span><span class="comment">-- After a few client updates
|
|
</span>client:isDisconnecting() <span class="comment">-- false
|
|
</span>client:isDisconnected() <span class="comment">-- true</span></pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:log" name="Client:log">🔗</a>
|
|
<h3 class="function_name">Client:log(event, data)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Log an event.
|
|
</p>
|
|
<p class="description">
|
|
Alias for Client.logger:log.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The type of event that happened.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">data</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The message to log.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example"><span class="keyword">if</span> somethingBadHappened <span class="keyword">then</span>
|
|
client:log(<span class="string">"error"</span>, <span class="string">"Something bad happened!"</span>)
|
|
<span class="keyword">end</span></pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:on" name="Client:on">🔗</a>
|
|
<h3 class="function_name">Client:on(event, callback)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Add a callback to an event.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event that will trigger the callback.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">callback</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The callback to be triggered.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">function</span></span>
|
|
The callback that was passed in.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">client:on(<span class="string">"connect"</span>, <span class="keyword">function</span>(data)
|
|
<span class="global">print</span>(<span class="string">"Connected to the server!"</span>)
|
|
<span class="keyword">end</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:removeCallback" name="Client:removeCallback">🔗</a>
|
|
<h3 class="function_name">Client:removeCallback(callback)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Remove a specific callback for an event.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">callback</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The callback to remove.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
<span class="types"><span class="type">boolean</span></span>
|
|
Whether or not the callback was removed.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example"><span class="keyword">local</span> callback = client:on(<span class="string">"chatMessage"</span>, <span class="keyword">function</span>(message)
|
|
<span class="global">print</span>(message)
|
|
<span class="keyword">end</span>)
|
|
client:removeCallback(callback)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:reset" name="Client:reset">🔗</a>
|
|
<h3 class="function_name">Client:reset(client)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Forcefully disconnects the client.
|
|
</p>
|
|
<p class="description">
|
|
The server is not notified of the disconnection.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><a class="type" href="#Client">Client</a></span>
|
|
<span class="parameter">client</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The client to reset.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:resetSendSettings" name="Client:resetSendSettings">🔗</a>
|
|
<h3 class="function_name">Client:resetSendSettings()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Reset all send options to their default values.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:send" name="Client:send">🔗</a>
|
|
<h3 class="function_name">Client:send(event, data)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Send a message to the server.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event to trigger with this message.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="parameter">data</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The data to send.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setBandwidthLimit" name="Client:setBandwidthLimit">🔗</a>
|
|
<h3 class="function_name">Client:setBandwidthLimit(incoming, outgoing)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the incoming and outgoing bandwidth limits.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">incoming</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The maximum incoming bandwidth in bytes.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">outgoing</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The maximum outgoing bandwidth in bytes.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setDefaultSendChannel" name="Client:setDefaultSendChannel">🔗</a>
|
|
<h3 class="function_name">Client:setDefaultSendChannel(channel)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the default send channel for all future outgoing messages.
|
|
</p>
|
|
<p class="description">
|
|
The initial default is 0.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">channel</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Channel to send data on.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setDefaultSendMode" name="Client:setDefaultSendMode">🔗</a>
|
|
<h3 class="function_name">Client:setDefaultSendMode(mode)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the default send mode for all future outgoing messages.
|
|
</p>
|
|
<p class="description">
|
|
|
|
The initial default is "reliable".
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">mode</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A valid send mode.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setMaxChannels" name="Client:setMaxChannels">🔗</a>
|
|
<h3 class="function_name">Client:setMaxChannels(limit)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the maximum number of channels.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">limit</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The maximum number of channels allowed. If it is 0,
|
|
then the maximum number of channels available on the system will be used.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setMessageTimeout" name="Client:setMessageTimeout">🔗</a>
|
|
<h3 class="function_name">Client:setMessageTimeout(timeout)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the timeout to wait for packets.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">timeout</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Time to wait for incoming packets in milliseconds. The initial
|
|
default is 0.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setPingInterval" name="Client:setPingInterval">🔗</a>
|
|
<h3 class="function_name">Client:setPingInterval(interval)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set how frequently to ping the server.
|
|
</p>
|
|
<p class="description">
|
|
The round trip time is updated each time a ping is sent. The initial
|
|
default is 500ms.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">interval</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The interval, in milliseconds.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setSchema" name="Client:setSchema">🔗</a>
|
|
<h3 class="function_name">Client:setSchema(event, schema)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the data schema for an event.
|
|
</p>
|
|
<p class="description">
|
|
Schemas allow you to set a specific format that the data will be sent. If the
|
|
client and server both know the format ahead of time, then the table keys
|
|
do not have to be sent across the network, which saves bandwidth.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">event</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The event to set the data schema for.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">{string,...}</span></span>
|
|
<span class="parameter">schema</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The data schema.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">server = sock.newServer(...)
|
|
client = sock.newClient(...)
|
|
|
|
<span class="comment">-- Without schemas
|
|
</span>server:send(<span class="string">"update"</span>, {
|
|
x = <span class="number">4</span>,
|
|
y = <span class="number">100</span>,
|
|
vx = -<span class="number">4.5</span>,
|
|
vy = <span class="number">23.1</span>,
|
|
rotation = <span class="number">1.4365</span>,
|
|
})
|
|
client:on(<span class="string">"update"</span>, <span class="keyword">function</span>(data)
|
|
<span class="comment">-- data = {
|
|
</span> <span class="comment">-- x = 4,
|
|
</span> <span class="comment">-- y = 100,
|
|
</span> <span class="comment">-- vx = -4.5,
|
|
</span> <span class="comment">-- vy = 23.1,
|
|
</span> <span class="comment">-- rotation = 1.4365,
|
|
</span> <span class="comment">-- }
|
|
</span><span class="keyword">end</span>)
|
|
|
|
|
|
<span class="comment">-- With schemas
|
|
</span>client:setSchema(<span class="string">"update"</span>, {
|
|
<span class="string">"x"</span>,
|
|
<span class="string">"y"</span>,
|
|
<span class="string">"vx"</span>,
|
|
<span class="string">"vy"</span>,
|
|
<span class="string">"rotation"</span>,
|
|
})
|
|
<span class="comment">-- client no longer has to send the keys, saving bandwidth
|
|
</span>server:send(<span class="string">"update"</span>, {
|
|
<span class="number">4</span>,
|
|
<span class="number">100</span>,
|
|
-<span class="number">4.5</span>,
|
|
<span class="number">23.1</span>,
|
|
<span class="number">1.4365</span>,
|
|
})
|
|
client:on(<span class="string">"update"</span>, <span class="keyword">function</span>(data)
|
|
<span class="comment">-- data = {
|
|
</span> <span class="comment">-- x = 4,
|
|
</span> <span class="comment">-- y = 100,
|
|
</span> <span class="comment">-- vx = -4.5,
|
|
</span> <span class="comment">-- vy = 23.1,
|
|
</span> <span class="comment">-- rotation = 1.4365,
|
|
</span> <span class="comment">-- }
|
|
</span><span class="keyword">end</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setSendChannel" name="Client:setSendChannel">🔗</a>
|
|
<h3 class="function_name">Client:setSendChannel(channel)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the send channel for the next outgoing message.
|
|
</p>
|
|
<p class="description">
|
|
|
|
The channel will be reset after the next message. Channels are zero-indexed
|
|
and cannot exceed the maximum number of channels allocated. The initial
|
|
default is 0.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">channel</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Channel to send data on.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">client:setSendChannel(<span class="number">2</span>) <span class="comment">-- the third channel
|
|
</span>client:send(<span class="string">"important"</span>, <span class="string">"The message"</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setSendMode" name="Client:setSendMode">🔗</a>
|
|
<h3 class="function_name">Client:setSendMode(mode)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the send mode for the next outgoing message.
|
|
</p>
|
|
<p class="description">
|
|
|
|
The mode will be reset after the next message is sent. The initial default
|
|
is "reliable".
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">string</span></span>
|
|
<span class="parameter">mode</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A valid send mode.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#SEND_MODES">SEND_MODES</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">client:setSendMode(<span class="string">"unreliable"</span>)
|
|
client:send(<span class="string">"position"</span>, {...})</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setSerialization" name="Client:setSerialization">🔗</a>
|
|
<h3 class="function_name">Client:setSerialization(serialize, deserialize)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the serialization functions for sending and receiving data.
|
|
</p>
|
|
<p class="description">
|
|
Both the client and server must share the same serialization method.
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">serialize</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The serialization function to use.
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">function</span></span>
|
|
<span class="parameter">deserialize</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
The deserialization function to use.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example">bitser = <span class="global">require</span> <span class="string">"bitser"</span> <span class="comment">-- or any library you like
|
|
</span>client = sock.newClient(<span class="string">"localhost"</span>, <span class="number">22122</span>)
|
|
client:setSerialization(bitser.dumps, bitser.loads)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setThrottle" name="Client:setThrottle">🔗</a>
|
|
<h3 class="function_name">Client:setThrottle(interval, acceleration, deceleration)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Change the probability at which unreliable packets should not be dropped.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">interval</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Interval, in milliseconds, over which to measure lowest mean RTT. (default: 5000ms)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">acceleration</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Rate at which to increase the throttle probability as mean RTT declines. (default: 2)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types"><span class="type">number</span></span>
|
|
<span class="parameter">deceleration</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Rate at which to decrease the throttle probability as mean RTT increases.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:setTimeout" name="Client:setTimeout">🔗</a>
|
|
<h3 class="function_name">Client:setTimeout(limit, minimum, maximum)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Set the parameters for attempting to reconnect if a timeout is detected.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">limit</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
A factor that is multiplied with a value that based on the average round trip time to compute the timeout limit. (default: 32)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">minimum</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Timeout value in milliseconds that a reliable packet has to be acknowledged if the variable timeout limit was exceeded. (default: 5000)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">maximum</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Fixed timeout in milliseconds for which any packet has to be acknowledged.
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#Client:update" name="Client:update">🔗</a>
|
|
<h3 class="function_name">Client:update()</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Check for network events and handle them.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section class="section" id="sock">
|
|
<h1 class="section-header "><a name="sock"></a>sock</h1>
|
|
<div class="section-content">
|
|
|
|
<dl class="function">
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#newClient" name="newClient">🔗</a>
|
|
<h3 class="function_name">newClient(serverOrAddress, port, maxChannels)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Creates a new Client instance.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">string/peer</span></span>
|
|
<span class="parameter">serverOrAddress</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Usually the IP address or hostname to connect to. It can also be an enet peer. (default: "localhost")
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">port</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Port number of the server to connect to. (default: 22122)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">maxChannels</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Maximum channels available to send and receive data. (default: 1)
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
A new Client object.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#Client">Client</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example"><span class="keyword">local</span> sock = <span class="global">require</span> <span class="string">"sock"</span>
|
|
|
|
<span class="comment">-- Client that will connect to localhost:22122 (by default)
|
|
</span>client = sock.newClient()
|
|
|
|
<span class="comment">-- Client that will connect to localhost:1234
|
|
</span>client = sock.newClient(<span class="string">"localhost"</span>, <span class="number">1234</span>)
|
|
|
|
<span class="comment">-- Client that will connect to 123.45.67.89:1234, using two channels
|
|
</span> <span class="comment">-- NOTE: Server must also allocate two channels!
|
|
</span>client = sock.newClient(<span class="string">"123.45.67.89"</span>, <span class="number">1234</span>, <span class="number">2</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
<div class="function_def">
|
|
<a class="anchor_link" href="#newServer" name="newServer">🔗</a>
|
|
<h3 class="function_name">newServer(address, port, maxPeers, maxChannels, inBandwidth, outBandwidth)</h3>
|
|
</dt>
|
|
<dd>
|
|
<p class="summary">
|
|
Creates a new Server object.
|
|
</p>
|
|
<p class="description">
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
<h3>Parameters:</h3>
|
|
<dl>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">string</span></span>
|
|
<span class="parameter">address</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Hostname or IP address to bind to. (default: "localhost")
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">port</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Port to listen to for data. (default: 22122)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">maxPeers</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Maximum peers that can connect to the server. (default: 64)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">maxChannels</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Maximum channels available to send and receive data. (default: 1)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">inBandwidth</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Maximum incoming bandwidth (default: 0)
|
|
</dt>
|
|
</li>
|
|
<dt>
|
|
<span class="parameter_info">
|
|
<span class="types">optional <span class="type">number</span></span>
|
|
<span class="parameter">outBandwidth</span>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
Maximum outgoing bandwidth (default: 0)
|
|
</dt>
|
|
</li>
|
|
</dl>
|
|
|
|
<h3>Returns:</h3>
|
|
<ol>
|
|
<li>
|
|
A new Server object.
|
|
</li>
|
|
</ol>
|
|
|
|
|
|
<h3>See also:</h3>
|
|
<ul class="see-items">
|
|
<li>
|
|
<a href="#Server">Server</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3>Usage:</h3>
|
|
<ul>
|
|
<pre class="example"><span class="keyword">local</span> sock = <span class="global">require</span> <span class="string">"sock"</span>
|
|
|
|
<span class="comment">-- Local server hosted on localhost:22122 (by default)
|
|
</span>server = sock.newServer()
|
|
|
|
<span class="comment">-- Local server only, on port 1234
|
|
</span>server = sock.newServer(<span class="string">"localhost"</span>, <span class="number">1234</span>)
|
|
|
|
<span class="comment">-- Server hosted on static IP 123.45.67.89, on port 22122
|
|
</span>server = sock.newServer(<span class="string">"123.45.67.89"</span>, <span class="number">22122</span>)
|
|
|
|
<span class="comment">-- Server hosted on any IP, on port 22122
|
|
</span>server = sock.newServer(<span class="string">"*"</span>, <span class="number">22122</span>)
|
|
|
|
<span class="comment">-- Limit peers to 10, channels to 2
|
|
</span>server = sock.newServer(<span class="string">"*"</span>, <span class="number">22122</span>, <span class="number">10</span>, <span class="number">2</span>)
|
|
|
|
<span class="comment">-- Limit incoming/outgoing bandwidth to 1kB/s (1000 bytes/s)
|
|
</span>server = sock.newServer(<span class="string">"*"</span>, <span class="number">22122</span>, <span class="number">10</span>, <span class="number">2</span>, <span class="number">1000</span>, <span class="number">1000</span>)</pre>
|
|
</ul>
|
|
|
|
</dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
|
|
|
|
</div> <!-- id="content" -->
|
|
</div> <!-- id="main" -->
|
|
<div id="about">
|
|
<i>Generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.3</a></i>
|
|
<i style="float:right;">Last updated 2017-07-24 20:20:49 </i>
|
|
</div> <!-- id="about" -->
|
|
</div> <!-- id="container" -->
|
|
</body>
|
|
</html>
|