下面的脚本只允许打印数据而不是返回( $msg ),我已经将它嵌入到一个控制器函数中,但无法返回响应
<?php
require __DIR__ . '/vendor/autoload.php';
\Ratchet\Client\connect('wss://echo.websocket.org:443')->then(function($conn) {
$conn->on('message', function($msg) use ($conn) {
echo "Received: {$msg}\n"; // NEED TO RETURN THIS INSTEAD OF PRINTING
$conn->close();
});
$conn->send('Hello World!');
}, function ($e) {
echo "Could not connect: {$e->getMessage()}\n";
});发布于 2020-10-27 04:48:41
这应该是可行的。
<?php
$message = null;
\Ratchet\Client\connect('wss://echo.websocket.org:443')->then(function($conn) use (&$message) {
$conn->on('message', function($msg) use ($conn, &$message) {
$conn->close();
$message = "Received: {$msg}\n";
});
$conn->send('Hello World!');
}, function ($e) use (&$message) {
$message = "Could not connect: {$e->getMessage()}\n";
});
echo $message;$message = "old message";
(function() use (&$message) {
(function() use(&$message) {
$message = "new message";
})();
})();
echo $message; // returns "new message"https://stackoverflow.com/questions/64544653
复制相似问题