我的PHP命令行版本是5.6,按道理workermani使用是没问题的
首先composer require workerman/workerman安装workerman
安装PHPSocket.io
composer require workerman/phpsocket.io
创建文件sk_test1.php代码如下
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use PHPSocketIO\SocketIO;
// 创建socket.io服务端,监听3120端口
$io = new SocketIO(3121);
// 当有客户端连接时打印一行文字
$io->on('connection', function($socket)use($io){
echo "new connection coming\n";
});
Worker::runAll();
运行php sk_test1.php start报错
PHP Parse error: syntax error, unexpected '?' in /home/jyp/vendor/workerman/phpsocket.io/src/SocketIO.php on line 23
Parse error: syntax error, unexpected '?' in /home/jyp/vendor/workerman/phpsocket.io/src/SocketIO.php on line 23
报错行代码是
$nsp = $opts['nsp'] ?? '\PHPSocketIO\Nsp';
??要PHP7才支持,只能将命令行改版本了

再运行一下

成功!
从PHP5.6到PHP7升级:Workerman和PHPSocket.IO的兼容问题
作者在使用PHP5.6的命令行环境下尝试安装并运行Workerman和PHPSocket.IO时遇到语法错误。问题在于PHP5.6不支持`??`运算符,升级到PHP7后解决了问题。
1499





