ZMQContext::getSocket

Create a new socket

&reftitle.description; public `ZMQSocket` `ZMQContext::getSocket` `int` `type` `string` `persistent_id`&null; `callable` `on_new_socket`&null;

Shortcut for creating new sockets from the context. If the context is not persistent the `persistent_id` parameter is ignored and the socket falls back to being non-persistent. The `on_new_socket` is called only when a new underlying socket structure is created.

&reftitle.parameters;

`type`

- `ZMQ::SOCKET_*` constant to specify socket type.

`persistent_id`

- If `persistent_id` is specified the socket will be persisted over multiple requests.

`on_new_socket`

- Callback function, which is executed when a new socket structure is created. This function does not get invoked if the underlying persistent connection is re-used. The callback takes ZMQSocket and persistent_id as two arguments.

&reftitle.returnvalues;

Returns a `ZMQSocket` object.

&reftitle.errors;

Throws `ZMQSocketException` on error.

&reftitle.examples;

### A `ZMQContext` example

Basic usage

    <?php
    /* Allocate a new context */
    $context = new ZMQContext();

    /* Create a new socket */
    $socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

    /* Connect the socket */
    $socket->connect("tcp://example.com:1234");

    /* Send a request */
    $socket->send("Hello there");

    /* Receive back the response */
    $message = $socket->recv();
    echo "Received message: {$message}\n";
    ?>