# ZMQDevice::__construct

(PECL zmq >= 0.5.0)

ZMQDevice::__construct — Construct a new device

### Description

ZMQDevice::__construct ( ZMQSocket `$frontend` , ZMQSocket `$backend` [, ZMQSocket `$listener` ] )

"ØMQ devices can do intermediation of addresses, services, queues, or any other abstraction you care to define above the message and socket layers." -- zguide

### Parameters

`frontend`

  Frontend parameter for the devices. Usually where there messages are coming.

`backend`

  Backend parameter for the devices. Usually where there messages going to.

`listener`

  Listener socket, which receives a copy of all messages going both directions. The type of this socket should be SUB, PULL or DEALER.

### Return Values

Call to this method will prepare the device. Usually devices are very long running processes so running this method from interactive script is not recommended. This method throw ZMQDeviceException if the device cannot be started.