Implementing Your Own Custom Socket Connection Class
You can implement your own source code to make socket connections to the GenRocket Real Time Server in any language that supports sockets.
Example Groovy Socket Client
The following source code connects to the GenRocket Real Time Server In Groovy.
public static Map executeOverSocket(String path,
String accessKey,
String scenario,
String scenarioDomain,
Boolean inMemory = true,
Integer loopCount = 0,
String host = 'localhost',
Integer port = 4444,
String salesforceProfileName = null) {
def map = [
path: path,
scenario: scenario,
scenarioDomain: scenarioDomain,
inMemory: inMemory,
loopCount: loopCount,
accessKey: accessKey,
sfProfileName : salesforceProfileName
]
def json = JsonOutput.toJson(map)
def socket = new Socket(host, port)
def slurper = new JsonSlurper()
def data = null
socket.withStreams { input, output ->
output << json + '\n'
data = slurper.parseText(input.text)
}
return data
}
Example Python Socket Client
The following source code connects to the GenRocket Real Time Server In Python.
import socket
import json
def executeOverSocket(scenario_path,
access_key,
scenario,
scenario_domain,
in_memory = True,
loop_count = 0,
host = 'localhost',
port = 4444,
salesforce_profile_name = None):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (host, port)
client_socket.connect(server_address)
try:
dict = {
"path": scenario_path,
"scenario": scenario,
"scenarioDomain": scenario_domain,
"inMemory": in_memory,
"loopCount": loop_count,
"accessKey": access_key,
"sfProfileName": salesforce_profile_name
}
parameters = json.dumps(dict)
parameters += '\n'
client_socket.sendall(parameters.encode('utf-8'))
data = client_socket.recv(2048)
output = ''
while data != "":
output += data
data = client_socket.recv(2048)
return output
finally:
client_socket.close()
Example PHP Socket Client
The following source code connects to the GenRocket Real Time Server In PHP.
<?php
class SocketClient {
public function __construct() {}
public function executeOverSocket($path,
$accessKey,
$scenario,
$scenarioDomain,
$inMemory = true,
$loopCount = 0,
$host = 'localhost',
$port = 4444,
$salesforceProfileName = null)
{
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, $host, $port);
$buffer = [
"path" => $path,
"scenario" => $scenario,
"scenarioDomain" => $scenarioDomain,
"inMemory" => $inMemory,
"loopCount" => $loopCount,
"accessKey" => $accessKey,
"sfProfileName" => $salesforceProfileName
];
$json = json_encode($buffer) . "\n";
$result = socket_write($socket, $json, strlen($json));
$output = '';
while ($out = socket_read($socket, 2048)) {
$output .= $out;
}
socket_close($socket);
return $output;
}
}