# ZMQContext::getSocket

(PECL zmq >= 0.5.0)

ZMQContext::getSocket — Crée un nouveau socket

### Description

public ZMQContext::getSocket(int `$type`, string `$persistent_id` = `null`, callable `$on_new_socket` = `null`): ZMQSocket

Raccourci pour créer de nouveaux sockets depuis le contexte. Si le contexte n'est pas persistent, le paramètre `persistent_id` sera ignoré, et le socket deviendra non persistent. Le paramètre `on_new_socket` ne sera appelé que si une nouvelle structure sous-jacente de socket est créée.

### Liste de paramètres

`type`

  Une constante `ZMQ::SOCKET_*` pour spécifier le type de socket.

`persistent_id`

  Si `persistent_id` est spécifié, le socket sera persistent entre les différentes requêtes.

`on_new_socket`

  Fonction de rappel, qui sera exécutée lorsqu'une nouvelle structure de socket est créée. Cette fonction ne sera pas appelée si la connexion sous-jacente persistante est ré-utilisée. La fonction de rappel prend deux arguments : ZMQSocket et persistent_id.

### Valeurs de retour

Retourne un objet ZMQSocket.

### Erreurs / Exceptions

Lance une ZMQSocketException en cas d'erreur.

### Exemples

Exemple #1 Exemple avec ZMQContext()

Basic usage

`<?php
/* Alloue un nouveau contexte */
$context = new ZMQContext();
/* Crée un nouveau socket */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');
/* COnnexion au socket */
$socket->connect("tcp://example.com:1234");
/* Envoi une requête */
$socket->send("Hello there");
/* Réception de la réponse */
$message = $socket->recv();
echo "Received message: {$message}\n";
?>`