- 引入socket.io
composer require “workerman/phpsocket.io”
- 服务代码server.php 基于thinkphp框架
php server.php start //启动服务命令
// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';
use PHPSocketIO\SocketIO;
use Workerman\Worker;
// 执行应用并响应(绑定)
//Container::get('app')->bind('socketio/Server')->run()->send();
// 在2021端口创建服务
$io = new SocketIO(2021);
$io->on('connection', function($socket)use($io){
var_dump($socket->request->_query);
var_dump($socket->id);
$socket->on('chat message', function($msg)use($io){
$io->emit('chat message', $msg);
});
$socket->on('broadcast', function($msg)use($io){
var_dump($msg);
$msg = json_decode($msg,true);
var_dump($msg);
$io->to($msg['fid'])->emit('sendMsg', ['event'=>'broadcast','data'=>$msg['data']]);
});
// 监听到新的客户端连接即在服务端输出'new connection'
echo 'new connection'."\n";
// 并向服务端发送'连接成功'
//$socket->emit('success', '连接成功123131');
// 服务端发送消息过来
$socket->on('sendMsg', function($msg)use($io,$socket){
// 在服务端输出消息
echo $msg."\n";
// 在收到的消息前面拼接'收到'后向客户端发送回去
//$io->to($socket->id)->emit('sendMsg', '收到"'.$msg.'"');
$io->emit('sendMsg', '收到"'.$msg.'" fid='.$socket->id);
// 将接受到的消息存储到数据库
$data[