Stomp blocking writes fix
This commit is contained in:
parent
17ab15a3d0
commit
791b98046d
@ -147,5 +147,30 @@ class LiberalStomp extends Stomp
|
|||||||
}
|
}
|
||||||
return $frame;
|
return $frame;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* Write frame to server
|
||||||
|
*
|
||||||
|
* @param StompFrame $stompFrame
|
||||||
|
*/
|
||||||
|
protected function _writeFrame (StompFrame $stompFrame)
|
||||||
|
{
|
||||||
|
if (!is_resource($this->_socket)) {
|
||||||
|
require_once 'Stomp/Exception.php';
|
||||||
|
throw new StompException('Socket connection hasn\'t been established');
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = $stompFrame->__toString();
|
||||||
|
|
||||||
|
// Make sure the socket's in a writable state; if not, wait a bit.
|
||||||
|
stream_set_blocking($this->_socket, 1);
|
||||||
|
|
||||||
|
$r = fwrite($this->_socket, $data, strlen($data));
|
||||||
|
stream_set_blocking($this->_socket, 0);
|
||||||
|
if ($r === false || $r == 0) {
|
||||||
|
$this->_reconnect();
|
||||||
|
$this->_writeFrame($stompFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user