PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 3.1.18.8
JetBackup – Backup, Restore & Migrate v3.1.18.8
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / src / JetBackup / 3rdparty / SocketAPI / Message / MessageWriter.php
backup / src / JetBackup / 3rdparty / SocketAPI / Message Last commit date
.htaccess 5 months ago Message.php 5 months ago MessageReader.php 5 months ago MessageWriter.php 5 months ago index.html 5 months ago web.config 5 months ago
MessageWriter.php
62 lines
1 <?php
2 /*
3 *
4 * JetBackup @ package
5 * Created By Idan Ben-Ezra
6 *
7 * Copyrights @ JetApps
8 * https://www.jetapps.com
9 *
10 **/
11 namespace JetBackup\SocketAPI\Message;
12
13 use JetBackup\SocketAPI\Protocol\ProtocolListener;
14 use JetBackup\SocketAPI\Socket\Socket;
15
16 class MessageWriter extends Message implements ProtocolListener {
17
18 const WRITE_CHUNK = 1024;
19
20 /** @var Socket */
21 private $_socket;
22
23 public function __construct(Socket $socket) {
24 parent::__construct();
25 $this->_socket = $socket;
26 }
27
28 public function write($message) {
29 $message = self::_create($message);
30
31 $written = 0;
32 $total = strlen($message);
33
34 while($written < $total) {
35 $write = [$this->_socket->getSocketResource()];
36 $changes = socket_select($read, $write, $except, 10);
37 if($changes === false) return false;
38 if($changes <= 0) continue;
39 $chunk = substr($message, $written, self::WRITE_CHUNK);
40 $chunk_length = strlen($chunk);
41 if(($written_length = @socket_write($this->_socket->getSocketResource(), $chunk, $chunk_length)) === false) return false;
42 $written += $written_length;
43 }
44
45 return ($total == $written);
46 }
47
48 public function onMessageReady($message) {
49 $this->write($message);
50 }
51
52 /**
53 * @param $message
54 *
55 * @return string
56 */
57 protected static function _create($message) {
58 $del = self::packInt(self::DELIMITER);
59 $len = self::packInt(strlen($message));
60 return $del . $len . $message . $len;
61 }
62 }