
A bunch of API updates Added read() to SocketInterface Return self for fluid interface in Server
141 lines
3.3 KiB
PHP
141 lines
3.3 KiB
PHP
<?php
|
|
namespace Ratchet;
|
|
|
|
/**
|
|
* An object-oriented container for a single socket connection
|
|
*/
|
|
interface SocketInterface {
|
|
/**
|
|
* @return resource
|
|
*/
|
|
function getResource();
|
|
|
|
/**
|
|
* Return the unique ID of this socket instance
|
|
*/
|
|
function __toString();
|
|
|
|
/**
|
|
* Calls socket_accept, duplicating its self
|
|
* @throws Exception
|
|
*/
|
|
function __clone();
|
|
|
|
/**
|
|
* Send a message through the socket. This writes to the buffer until the entire message is delivered
|
|
* @param string Your message to send to the socket
|
|
* @return null
|
|
* @throws Exception
|
|
* @see write
|
|
*/
|
|
function deliver($message);
|
|
|
|
// Not sure if I'll implement this or leave it only in clone
|
|
// function accept();
|
|
|
|
/**
|
|
* Bind the socket instance to an address/port
|
|
* @param string
|
|
* @param int
|
|
* @return SocketInterface
|
|
* @throws Exception
|
|
*/
|
|
function bind($address, $port = 0);
|
|
|
|
/**
|
|
* Close the open connection to the client/socket
|
|
*/
|
|
function close();
|
|
|
|
/**
|
|
* Initiates a connection to a socket
|
|
* @param string
|
|
* @param int
|
|
* @return SocketInterface
|
|
* @throws Exception
|
|
*/
|
|
function connect($address, $port = 0);
|
|
|
|
/**
|
|
* Get the address the socket connected from
|
|
* @return string
|
|
* @throws Exception
|
|
*/
|
|
function getRemoteAddress();
|
|
|
|
/**
|
|
* @param int
|
|
* @param int
|
|
* @return mixed
|
|
* @throws Exception
|
|
*/
|
|
function get_option($level, $optname);
|
|
|
|
/**
|
|
* Listen for incoming connections on this socket
|
|
* @param int
|
|
* @return SocketInterface
|
|
* @throws Exception
|
|
*/
|
|
function listen($backlog = 0);
|
|
|
|
/**
|
|
* Read a maximum of length bytes from a socket
|
|
* @param int Number of bytes to read
|
|
* @param int Flags
|
|
* @return string Data read from the socket
|
|
* @throws Exception
|
|
*/
|
|
function read($length, $type = PHP_BINARY_READ);
|
|
|
|
/**
|
|
* Called when the client sends data to the server through the socket
|
|
* @param string Variable to write data to
|
|
* @param int Number of bytes to read
|
|
* @param int
|
|
* @return int Number of bytes received
|
|
* @throws Exception
|
|
* @todo Change the pass by reference
|
|
*/
|
|
function recv(&$buf, $len, $flags);
|
|
|
|
// @todo Figure out how to break this out to not do pass by reference
|
|
// function select(array &$read, array &$write, array &$except, $tv_sec, $tv_usec = 0);
|
|
|
|
/**
|
|
* Sets the blocking mode on the socket resource
|
|
* Wen an operation (receive, send, connect, accept, etc) is performed after set_block() the script will pause execution until the operation is completed
|
|
* @return SocketInterface
|
|
* @throws Exception
|
|
*/
|
|
function set_block();
|
|
|
|
/**
|
|
* Sets nonblocking mode for socket resource
|
|
* @return SocketInterface
|
|
* @throws Exception
|
|
*/
|
|
function set_nonblock();
|
|
|
|
/**
|
|
* @param int
|
|
* @param int
|
|
* @param mixed
|
|
* @return SocketInterface
|
|
*/
|
|
function set_option($level, $optname, $optval);
|
|
|
|
/**
|
|
* @param int
|
|
* @return SocketInterface
|
|
* @throws Exception
|
|
*/
|
|
function shutdown($how = 2);
|
|
|
|
/**
|
|
* Send text to the client on the other end of the socket
|
|
* @param string
|
|
* @param int
|
|
*/
|
|
function write($buffer, $length = 0);
|
|
} |