- <?php
- use \Workerman\Worker;
- use \GatewayWorker\Gateway;
- use \Workerman\Autoloader;
- require_once __DIR__ . '/../../Workerman/Autoloader.php';
- Autoloader::setRootPath(__DIR__);
- // #### 内部推送端口(假设当前服务器内网ip为192.168.100.100) ####
- $internal_gateway = new Gateway("Text://192.168.100.100:7273");
- $internal_gateway->name='internalGateway';
- $internal_gateway->startPort = 2800;
- // 端口为start_register.php中监听的端口,聊天室默认是1236
- $internal_gateway->registerAddress = '127.0.0.1:1236';
- // #### 内部推送端口设置完毕 ####
- if(!defined('GLOBAL_START'))
- {
- Worker::runAll();
- }
客户端:在其它项目中就可以直接用PHP socket 使用文本协议调用,代码类似如下:
- // 建立连接,@see http://php.net/manual/zh/function.stream-socket-client.php
- $client = stream_socket_client('tcp://192.168.100.100:7273');
- if(!$client)exit("can not connect");
- // 模拟超级用户,以文本协议发送数据,注意Text文本协议末尾有换行符(发送的数据中最好有能识别超级用户的字段),这样在Event.php中的onMessage方法中便能收到这个数据,然后做相应的处理即可
- fwrite($client, '{"type":"send","content":"hello all", "user":"admin", "pass":"******"}'."\n");