TrackManiaControl/core/Communication/usage_documentation.txt

55 lines
2.1 KiB
Plaintext
Raw Normal View History

The CommuncationListening of the Communcation Manager can be enabled in the ingame Settings.
2015-06-21 21:45:52 +02:00
There the following settings are existing:
-- Enable Socket Listening (Let the CommunicationManager listen for incoming calls)
2017-03-16 18:29:04 +01:00
-- Password (Password which get used to encrypt and decrypt the messages for the openssl connection)
-- Listening port for every server (this is the port the CommunicationManager listens at)
For the description of the available implemented communcation Methods check the CommunicationMethods interface.
2015-06-26 13:25:29 +02:00
If you need methods which are not implemented, or additional Parameters, feel free to contact us.
Sample ManiaControl Implementation (for ManiaControl to ManiaControl connections)
##php code begin
2017-03-26 21:21:19 +02:00
//This Sample shows just the Implementation of the Method GET_SERVER_CHAT
$communication = $this->maniaControl->getCommunicationManager()->createCommunication(IP/Domain, PORT, 'YOUR_PASSWORD');
$communication->call(function($data){
2017-03-26 21:21:19 +02:00
//$data includes the data sent by the Website / other Controller
return new CommunicationAnswer($this->chatBuffer);
}, CommunicationMethods::GET_SERVER_CHAT);
##php code end
Sample Web Implementation (to call ManiaControl from a website)
##php code begin
2015-06-21 21:45:52 +02:00
$errno = null;
$errstr = null;
$socket = fsockopen("xx.xxx.xx.xx", xxxxx, $errno, $errstr, 2);
echo "ok?" . $errno . " - " . $errstr . "\n";
$data = array("method" => "getServerChat", "data" => "");
// Encode and Encrypt the Data
$data = json_encode(array("method" => "getServerChat", "data" => ""));
$data = openssl_encrypt($data, 'aes-192-cbc', 'YOUR_PASSWORD', OPENSSL_RAW_DATA, 'kZ2Kt0CzKUjN2MJX');
// Write the Data on the Socket
fwrite($socket, strlen($data) . "\n" . $data);
// Read Answer Data
$len = (int)fgets($socket);
echo $len;
2015-06-21 22:24:10 +02:00
$buff = '';
2015-06-21 21:45:52 +02:00
while (!feof($socket) && strlen($buff) < $len) {
$buff .= fgets($socket, $len - strlen($buff) + 1);
}
// Decrypt and Decode the Response Data
$data = openssl_decrypt($buff, 'aes-192-cbc', 'YOUR_PASSWORD', OPENSSL_RAW_DATA, 'kZ2Kt0CzKUjN2MJX');
echo json_decode($data);
//Close the Socket
fclose($socket);
##php code end