(PECL zmq >= 0.5.0)
ZMQSocket::__construct — 建立新的 ZMQSocket
$context
,$type
,$persistent_id
= null
,$on_new_socket
= null
建構一個 ZMQSocket 物件。 persistent_id
參數可用於分配持續性 socket。持續性 socket 必須從持續性上下文分配,並且它在多個請求中保持連線。persistent_id
參數可用於在多個請求中調用相同的 socket。on_new_socket
僅在建立新的基礎 socket 結構時呼叫。
context
ZMQContext 物件。
type
socket 類型。 請參閱 ZMQ::SOCKET_*
常數。
persistent_id
如果指定 persistent_id
,則 socket 將在多個請求中保持持續。 如果 context
不是持續性的,則 socket 會退回非持續性模式。
on_new_socket
回呼函式,當建立新的 socket 結構時執行。 如果重複使用底層的持續性連線,則不會呼叫此函式。
發生錯誤時擲回 ZMQSocketException。
範例 #1 ZMQSocket() 範例
使用回呼來綁定/連線 socket
<?php
/*
這個 socket 是持續性的,所以此函式只會在對腳本的首次請求時呼叫。
*/
function on_new_socket_cb(ZMQSocket $socket, $persistent_id = null)
{
if ($persistent_id === 'server') {
$socket->bind("tcp://127.0.0.1:12122");
} else {
$socket->connect("tcp://127.0.0.1:12122");
}
}
/* 分配新的上下文 */
$context = new ZMQContext();
/* 建立新的 socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');
$message = $socket->recv();
echo "收到訊息: {$message}\n";
?>