WebSocketに問題があります。だから、私はかなり簡単な方法でsocketIOクライアントを通して私にいくつかのデータを提供するRpiを持っています。次のコードは、私はこのデータを取得するのですか方法を示しています。SocketIOとPHPwsを使用してサーバー間にソケットを作成しようとしています
<!DOCTYPE html>
<html>
<header>
<title>SocketIO test</title>
<script src="http://192.168.5.5:8000/socket.io/socket.io.js"></script>
</header>
<body>
<script type="text/javascript">
var client = io.connect('http://192.168.5.5:8000');
client.on('connect', function() {
console.log('connected');
});
client.on('raw', function(data){
console.log(data);
});
client.on('state', function(data){
console.log(data);
});
</script>
</body>
しかし、私は実装するために必要なものは少し複雑です。私は、クライアント側に到達する前に、いくつかのデータを扱うためにApacheサーバーを使用する必要があります。以下の画像は、私が構築しようとすると何を示しています。私は私のシナリオのための最善の解決策のように見えた、PHPwsを見つけるまで
が私の目標を達成するために、私はPHPのためのWebSocketサーバーとクライアントライブラリのいくつかを試してみました。 だから、私は例を読んで、私はそれらをテストし、私は次のコードでRPIに接続しようとしたまですべてがうまくいった:
require_once("../vendor/autoload.php");
$loop = \React\EventLoop\Factory::create();
$logger = new \Zend\Log\Logger();
$writer = new Zend\Log\Writer\Stream("php://output");
$logger->addWriter($writer);
$client = new \Devristo\Phpws\Client\WebSocket("ws://192.168.5.5:8000", $loop, $logger);
$client->on("connect", function() use ($logger, $client){
$logger->notice("Or we can use the connect event!");
$client->send("Hello world!");
});
$client->on("raw", function($message) use ($client, $logger){
$logger->notice("Got message: ".$message->getData());
$client->close();
});
$client->open()->then(function() use($logger, $client){
$logger->notice("We can use a promise to determine when the socket has been connected!");
});
$loop->run();
私は、多かれ少なかれDevristoのgithubのからthis exampleを撮影しました。
サーバー側からは、プログラムの実行中にエラーやメッセージがスローされません。
PHPwsでここで構築したいものを構築することは可能ですか? もしそうならば、PHPwsサンプルコードが表示されたRpiサーバーに正しく接続していますか?