<?php
require_once __DIR__ . '/Workerman/Autoloader.php';
use Workerman\Worker;
use PHPSocketIO\SocketIO;
// 创建socket.io服务端,监听2021端口
$io = new SocketIO(3120);
// 当有客户端连接时打印一行文字
$io->on('connection', function($socket)use($io){
// 定义chat message事件回调函数
$socket->on('chat message', function($msg)use($io){
// 触发所有客户端定义的chat message from server事件
for ($i=0;$i<10;$i++){
$io->emit('chat message from server', $msg);
sleep(1);
}
});
});
Worker::runAll();
?>
<!DOCTYPE html>
<html><head>
<title>HTML5</title>
<meta charset="utf-8" />
<script src="./jquery.1.11.3.min.js"></script>
<script src="./socket.io.js"></script>
<script>
// 连接服务端
var socket = io('http://127.0.0.1:3120');
// 触发服务端的chat message事件
socket.emit('chat message', '这个是消息内容...');
// 服务端通过emit('chat message from server', $msg)触发客户端的chat message from server事件
socket.on('chat message from server', function(msg){
console.log('get message:' + msg + ' from server');
});
</script>
</head>
<body>
</body>
</html>
http协议始终是不会主动推送的,所以无法实现实时现实后台程序运行的进度。