Skip to content

Commit 45febea

Browse files
authored
Add Swoole's Server socket type (#75)
1 parent 65bd401 commit 45febea

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/ServerFactory.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class ServerFactory
1515
'host' => '127.0.0.1',
1616
'port' => 8000,
1717
'mode' => 2, // SWOOLE_PROCESS
18+
'sock_type' => 1, // SWOOLE_SOCK_TCP
1819
'settings' => [],
1920
];
2021

@@ -31,13 +32,14 @@ public function __construct(array $options = [])
3132
$options['host'] = $options['host'] ?? $_SERVER['SWOOLE_HOST'] ?? $_ENV['SWOOLE_HOST'] ?? self::DEFAULT_OPTIONS['host'];
3233
$options['port'] = $options['port'] ?? $_SERVER['SWOOLE_PORT'] ?? $_ENV['SWOOLE_PORT'] ?? self::DEFAULT_OPTIONS['port'];
3334
$options['mode'] = $options['mode'] ?? $_SERVER['SWOOLE_MODE'] ?? $_ENV['SWOOLE_MODE'] ?? self::DEFAULT_OPTIONS['mode'];
35+
$options['sock_type'] = $options['sock_type'] ?? $_SERVER['SWOOLE_SOCK_TYPE'] ?? $_ENV['SWOOLE_SOCK_TYPE'] ?? self::DEFAULT_OPTIONS['sock_type'];
3436

3537
$this->options = array_replace_recursive(self::DEFAULT_OPTIONS, $options);
3638
}
3739

3840
public function createServer(callable $requestHandler): Server
3941
{
40-
$server = new Server($this->options['host'], (int) $this->options['port'], (int) $this->options['mode']);
42+
$server = new Server($this->options['host'], (int) $this->options['port'], (int) $this->options['mode'], (int) $this->options['sock_type']);
4143
$server->set($this->options['settings']);
4244
$server->on('request', $requestHandler);
4345

tests/Unit/ServerFactoryTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public function testCreateServerWithDefaultOptions(): void
2020
self::assertSame($defaults['host'], $server->host);
2121
self::assertSame($defaults['port'], $server->port);
2222
self::assertSame($defaults['mode'], $server->mode);
23+
self::assertSame($defaults['sock_type'], $server->type);
2324
self::assertSame($defaults['settings'], $server->setting);
2425
}
2526

@@ -29,6 +30,7 @@ public function testCreateServerWithGivenOptions(): void
2930
'host' => '0.0.0.0',
3031
'port' => 9501,
3132
'mode' => 1,
33+
'sock_type' => 2,
3234
'settings' => [
3335
'worker_num' => 1,
3436
],
@@ -41,13 +43,15 @@ public function testCreateServerWithGivenOptions(): void
4143
self::assertSame('0.0.0.0', $server->host);
4244
self::assertSame(9501, $server->port);
4345
self::assertSame(1, $server->mode);
46+
self::assertSame(2, $server->type);
4447
self::assertSame(['worker_num' => 1], $server->setting);
4548
}
4649

4750
public function testCreateServerWithPartialOptionsOverride(): void
4851
{
4952
$options = [
5053
'mode' => 1,
54+
'sock_type' => 2,
5155
'settings' => [
5256
'worker_num' => 1,
5357
],
@@ -61,6 +65,7 @@ public function testCreateServerWithPartialOptionsOverride(): void
6165
self::assertSame($defaults['host'], $server->host);
6266
self::assertSame($defaults['port'], $server->port);
6367
self::assertSame(1, $server->mode);
68+
self::assertSame(2, $server->type);
6469
self::assertSame(['worker_num' => 1], $server->setting);
6570
}
6671
}

0 commit comments

Comments
 (0)