WebSocket は、Web ブラウザとサーバー間の全二重 (双方向) 通信を可能にするテクノロジーです。従来の HTTP プロトコルは要求応答モデルを採用しています。つまり、クライアントがサーバーに対して要求を開始すると、サーバーはクライアントに応答を返すことができます。 WebSocket テクノロジーはこのモデルを打ち破り、サーバーがクライアントにデータを送信できるようにし、Web サイトでリアルタイム通信、リアルタイム プッシュ、その他のアプリケーションを実装できるようにします。
Web 開発で広く使用されている言語である PHP は、WebSocket 開発も実装できます。この記事では、PHP を使用して WebSocket アプリケーションを開発する方法を紹介します。
1. WebSocket プロトコルの紹介
WebSocket プロトコルは、HTML5 で新たに追加された通信プロトコルで、ブラウザとサーバー間の双方向通信を実現します。 WebSocket プロトコルは HTTP/HTTPS プロトコルに基づいて構築されています。標準の WebSocket URL パターンは ws://
または wss://
(ws://##) です。 # これは通信に通常の HTTP プロトコルを使用することを意味し、
wss:// は通信に安全な HTTPS プロトコルを使用することを意味します。
<?php use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; require __DIR__ . '/vendor/autoload.php'; class ChatServer implements RatchetMessageComponentInterface { protected $clients; public function __construct() { $this->clients = new SplObjectStorage(); } public function onOpen(RatchetConnectionInterface $conn) { $this->clients->attach($conn); echo "New connection! ({$conn->resourceId}) "; } public function onClose(RatchetConnectionInterface $conn) { $this->clients->detach($conn); echo "Connection {$conn->resourceId} has disconnected "; } public function onError(RatchetConnectionInterface $conn, Exception $e) { echo "An error has occurred: {$e->getMessage()} "; $conn->close(); } public function onMessage(RatchetConnectionInterface $from, $msg) { foreach ($this->clients as $client) { if ($client !== $from) { $client->send($msg); } } } } $server = IoServer::factory( new HttpServer( new WsServer( new ChatServer() ) ), 8080 ); $server->run();
以上がPHP で WebSocket 開発を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。