Example #1
0
 function testMasking()
 {
     $input = "Hello World!";
     $frame = WebSocketFrame::create(WebSocketOpcode::TextFrame, $input);
     $frame->setMasked(true);
     $client = new WebSocket("ws://127.0.0.1:12345/echo/");
     $client->open();
     $client->sendFrame($frame);
     $msg = $client->readMessage();
     $client->close();
     $this->assertEquals($input, $frame->getData());
     $this->assertEquals(false, $msg->getFrames()[0]->isMasked());
 }
Example #2
0
 private function populateFromQueue()
 {
     $type = 1;
     $data = NULL;
     while (false !== msg_receive($this->queue, 1, $type, 16384, $data, false, MSG_IPC_NOWAIT)) {
         $uid = Common::substrUntil($data, ':');
         $message = Common::substrFrom($data, ':');
         echo "GOT {$uid}:{$message}\n";
         if (false !== ($socket = $this->getSocketByResourceB($uid))) {
             $frame = WebSocketFrame::create(WebSocketOpcode::TextFrame, $message);
             $socket->write($frame->encode());
         }
     }
 }
Example #3
0
 public function onAdminMessage(IWebSocketConnection $user, IWebSocketMessage $msg)
 {
     $this->say("[DEMO] Admin Message received!");
     $frame = WebSocketFrame::create(WebSocketOpcode::PongFrame);
     $user->sendFrame($frame);
 }
 public function disconnect()
 {
     $f = WebSocketFrame::create(WebSocketOpcode::CloseFrame);
     $this->sendFrame($f);
     $this->_socket->disconnect();
 }
 protected function createFrames()
 {
     $this->frames = array(WebSocketFrame::create(WebSocketOpcode::TextFrame, $this->data));
 }
 public function close()
 {
     /**
      * @var WebSocketFrame
      */
     $frame = null;
     $this->sendFrame(WebSocketFrame::create(WebSocketOpcode::CloseFrame));
     $i = 0;
     do {
         $i++;
         $frame = @$this->readFrame();
     } while ($i < 2 && $frame && $frame->getType() == WebSocketOpcode::CloseFrame);
     @fclose($this->socket);
 }