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()); }
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()); } } }
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); }