PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / trunk
JetBackup – Backup, Restore & Migrate vtrunk
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 1 year ago Message.php 1 year ago MessageReader.php 1 year ago MessageWriter.php 1 year ago index.html 1 year ago web.config 1 year 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 }