Beispiel #1
0
 /**
  * Send message
  *
  * @param StreamInterface $message
  */
 public function sendMessage(StreamInterface $message)
 {
     // TFormat from <nel/message.h>
     $messageType = 0;
     // build packet
     // <int32> packet length (length itself is not counted)
     // <int32> packet number
     // <byte>  message type
     // <.....> message
     // first pass - to get packet length
     $hd = new MemStream();
     $hd->serial_uint32($this->msgNum);
     $hd->serial_byte($messageType);
     // include original message
     $message->serial($hd);
     $this->msgNum++;
     $buf = $hd->getBuffer();
     $len = strlen($buf);
     // second pass - final packet
     $hd = new MemStream();
     $hd->serial_uint32_n($len);
     $hd->serial_buffer($buf);
     $this->sock->write($hd->getBuffer());
 }