namibia
df0489e1eeeeab5a9bd44e1d84fce49924fe1bac
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
<?php namespace Utility\Comms; /** * Facilitates chatting to APE http push server. * @author andre.fourie */ class Ape { const CHANGE_TYPE_REFRESH = 'Refresh'; const CHANGE_TYPE_CREATE = 'Create'; const CHANGE_TYPE_UPDATE = 'Update'; const CHANGE_TYPE_DELETE = 'Delete'; /** * Speak to the APE server on specified channel. * @param string $channel * @param array $data * @param string $raw * @param boolean|string $pubid * @param string $command * @return array|boolean */ static public function broadcast($channel, array $data, $raw = 'DATA', $pubid = false, $command = 'inlinepush') { $gearClient = new \GearmanClient(); $gearClient->addServer(); $gearClient->doBackground( 'Broadcast', json_encode($data) ); /*$cmd = \Zend\Json\Json::encode(array(array( 'cmd' => $command, 'params' => array( 'password' => 'ap3dP2ssk3Y', 'pubid' => $pubid, 'raw' => $raw, 'channel' => $channel, 'data' => $data ) ))); try { if (false && function_exists('curl_init')) { #-> Have curl, use it. $ch = curl_init('http://127.0.0.1:6969'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $cmd); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($cmd)) ); $result = curl_exec($ch); curl_close($ch); return \Zend\Json\Json::decode($result); } else { #-> No curl, use the slower option. $result = @file_get_contents('http://127.0.0.1:6969', null, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/json' . "\r\n" . 'Content-Length: ' . strlen($cmd) . "\r\n", 'content' => $cmd ) ))); return \Zend\Json\Json::decode($result); } } catch (\Exception $e) { error_log(__CLASS__ . " >> $e"); return false; }*/ } /** * Broadcast a Dataset Refresh notification. * @param string $datasetName * @return array|boolean */ static public function broadcastBuildDatasetChange($datasetName) { return self::broadcast('synchv1', array( 'Meta' => array( 'Strategy' => 'Build', 'DatasetName' => $datasetName, 'Type' => self::CHANGE_TYPE_REFRESH ), 'Data' => array() )); } /** * Broadcast a Dataset Update notification. * @param string $datasetName * @param string $changeType * @param array $datasetRecord * @return array|boolean */ static public function broadcastUpdateDatasetChange($datasetName, $changeType, array $datasetRecord) { return self::broadcast('synchv1', array( 'Meta' => array( 'Strategy' => 'Update', 'DatasetName' => $datasetName, 'Type' => $changeType ), 'Data' => $datasetRecord )); } } |
Commits for namibiamodule/Utility/src/Utility/Comms/Ape.php
Revision | Author | Commited | Message |
---|---|---|---|
df0489 ... | Mark | Fri 14 Oct, 2016 10:01:00 +0000 | initial commit |