リアルタイム株価機能を実現する PHP Websocket 開発ガイド
はじめに:
現代のインターネット時代において、リアルタイムデータの送信と表示機能要件、特に金融分野では、株価のリアルタイム更新が非常に重要です。この記事では、PHP を使用して Websocket のリアルタイム株価機能を開発する方法を紹介し、読者がこの機能をすぐに実装できるように具体的なコード例を示します。
1. Websocket とは
Websocket は HTML5 の通信プロトコルです。単一の TCP 接続で全二重通信を確立できます。従来の HTTP リクエストと比較して、Websocket はリアルタイムの永続的な接続を実現できます。サーバーがデータをクライアントにアクティブにプッシュできるようになります。リアルタイムのデータ送信とプッシュのシナリオでは、Websocket は非常に柔軟で効率的な選択肢です。
2. PHP で Websocket を開発するための基本手順
Websocket ライブラリを PHP プロジェクトに導入する
PHP には、選択できる成熟した Websocket ライブラリが多数あります。 Ratchet 、 WebSocketPHP など。適切な Websocket ライブラリをプロジェクトに導入すると、開発作業が大幅に簡素化されます。 Ratchet を例にとると、次のコマンドを使用して Ratchet ライブラリをインストールできます。
composer require cboden/ratchet
Websocket サーバーの作成
Ratchet ライブラリを使用した Websocket サーバーの作成は非常に簡単で、数行のコードだけで実現できます。以下は、単純な Websocket サーバーを実装し、クライアントが接続を要求したときにウェルカム メッセージを返す例です。
require 'vendor/autoload.php'; use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; $websocket = new class() implements MessageComponentInterface { public function onOpen(ConnectionInterface $conn) { $conn->send('欢迎使用实时股票行情功能!'); } public function onMessage(ConnectionInterface $from, $msg) { // 处理接收到的消息 } public function onClose(ConnectionInterface $conn) { // 连接关闭时的处理 } public function onError(ConnectionInterface $conn, Exception $e) { // 错误处理 } }; $server = IoServer::factory( new HttpServer( new WsServer($websocket) ), 8080 ); $server->run();
Websocket サーバーに株価関数を実装する##onMessage
メソッドを使用すると、株式市場データをプッシュするコードを作成できます。特定のニーズに応じて、対応するデータ ソースからリアルタイムの市場データを取得し、そのデータを接続されたクライアントにプッシュできます。以下は、ランダムに生成された株価データを 1 秒ごとにクライアントにプッシュする例です。 <pre class='brush:php;toolbar:false;'>public function onMessage(ConnectionInterface $from, $msg) {
$timer = ReactEventLoopFactory::create();
$timer->addPeriodicTimer(1, function () use ($from) {
// 从数据源获取实时行情数据
$stockData = generateStockData();
$from->send($stockData);
});
$timer->run();
}</pre>
WebSocket
Object を使用して Websocket サーバーと通信できます。次は例です。サーバーによってプッシュされたリアルタイムの株式市場データをページが受信すると、そのデータがページに表示されます: <pre class='brush:javascript;toolbar:false;'>var socket = new WebSocket('ws://localhost:8080');
socket.onmessage = function (event) {
var stockData = event.data;
// 展示股票行情数据
};</pre>
以上がリアルタイム株価機能を実装するための PHP Websocket 開発ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。