function chat(Session $session, string $message): void
{
global $client;
$session->send($message)->then(function () use ($session, $client) {
$receiveNext = function () use (&$receiveNext, $session, $client) {
$session->receive()->then(function ($msg) use (&$receiveNext, $session, $client) {
if ($msg instanceof AssistantMessage) {
echo $msg->getText() . "\n";
}
if ($msg instanceof ResultMessage) {
// Ready for next message
return;
}
$receiveNext();
});
};
$receiveNext();
});
}
// Usage
chat($session, 'First message');
chat($session, 'Follow-up question');