1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| <?php
| namespace PhpAmqpLib\Connection;
|
| class AMQPSSLConnection extends AMQPStreamConnection
| {
| /**
| * @param string $host
| * @param int $port
| * @param string $user
| * @param string $password
| * @param string $vhost
| * @param array $ssl_options
| * @param array $options
| */
| public function __construct(
| $host,
| $port,
| $user,
| $password,
| $vhost = '/',
| $ssl_options = array(),
| $options = array()
| ) {
| $ssl_context = empty($ssl_options) ? null : $this->create_ssl_context($ssl_options);
| parent::__construct(
| $host,
| $port,
| $user,
| $password,
| $vhost,
| isset($options['insist']) ? $options['insist'] : false,
| isset($options['login_method']) ? $options['login_method'] : 'AMQPLAIN',
| isset($options['login_response']) ? $options['login_response'] : null,
| isset($options['locale']) ? $options['locale'] : 'en_US',
| isset($options['connection_timeout']) ? $options['connection_timeout'] : 3,
| isset($options['read_write_timeout']) ? $options['read_write_timeout'] : 3,
| $ssl_context,
| isset($options['keepalive']) ? $options['keepalive'] : false,
| isset($options['heartbeat']) ? $options['heartbeat'] : 0
| );
| }
|
| /**
| * @param array $options
| * @return resource
| */
| private function create_ssl_context($options)
| {
| $ssl_context = stream_context_create();
| foreach ($options as $k => $v) {
| stream_context_set_option($ssl_context, 'ssl', $k, $v);
| }
|
| return $ssl_context;
| }
| }
|
|