public function sendData($data, $type = 'text', $masked = true)
{
if ($this->_connected === false) {
trigger_error("Not connected", E_USER_WARNING);
return false;
}
if (!is_string($data)) {
trigger_error("Not a string data was given.", E_USER_WARNING);
return false;
}
if (strlen($data) == 0) {
return false;
}
$res = @fwrite($this->_Socket, $this->_hybi10Encode($data, $type, $masked));
if ($res === 0 || $res === false) {
return false;
}
$buffer = ' ';
while ($buffer !== '') {
$buffer = fread($this->_Socket, 512);
// drop?
}
return true;
}
function postToWebSocket($property, $value, $post_action = 'PostProperty') { if (defined('DISABLE_WEBSOCKETS') && DISABLE_WEBSOCKETS == 1) { return; } require_once ROOT . 'lib/websockets/client/lib/class.websocket_client.php'; global $wsClient; if (!Is_Object($wsClient)) { $wsClient = new WebsocketClient(); if (!@$wsClient->connect('127.0.0.1', WEBSOCKETS_PORT, '/majordomo')) { $wsClient = false; } } if (!Is_Object($wsClient) && isset($_SERVER['REQUEST_METHOD'])) { return false; } $payload = json_encode(array('action' => $post_action, 'data' => array('NAME' => $property, 'VALUE' => $value))); $data_sent = false; if (Is_Object($wsClient)) { $data_sent = @$wsClient->sendData($payload); } if (!$data_sent && !isset($_SERVER['REQUEST_METHOD'])) { //reconnect $wsClient = new WebsocketClient(); if (@$wsClient->connect('127.0.0.1', WEBSOCKETS_PORT, '/majordomo')) { $wsClient->sendData($payload); } } }