Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tutorial pembangunan PHP Websocket untuk melaksanakan fungsi permainan dalam talian dengan mudah

Tutorial pembangunan PHP Websocket untuk melaksanakan fungsi permainan dalam talian dengan mudah

WBOY
WBOYasal
2023-12-02 11:08:251146semak imbas

PHP Websocket开发教程,轻松实现在线游戏功能

Tutorial pembangunan PHP Websocket, melaksanakan fungsi permainan dalam talian dengan mudah, contoh kod khusus diperlukan

Websocket ialah protokol komunikasi dupleks penuh, yang boleh merealisasikan penghantaran data masa nyata dan fungsi interaktif dalam aplikasi Web. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan Websocket, dan cara menggunakan Websocket untuk melaksanakan fungsi permainan dalam talian dengan mudah.

1. Pengetahuan asas PHP Websocket

Sebelum kita mula, kita perlu memahami beberapa pengetahuan asas PHP Websocket.

  1. Apakah itu Websocket?

Websocket ialah protokol berasaskan TCP yang membenarkan komunikasi dua hala antara pelayan dan pelanggan. Berbeza daripada model respons permintaan HTTP tradisional, Websocket boleh membolehkan pelayan untuk menolak data secara aktif kepada klien dan mengemas kini kandungan halaman dalam masa nyata.

  1. Cara Websocket berfungsi

Prinsip kerja Websocket adalah sangat mudah mula-mula mewujudkan sambungan dengan pelayan melalui protokol HTTP, dan kemudian meningkatkan protokol kepada Websocket. Setelah sambungan berjaya diwujudkan, pelayan dan pelanggan boleh mencapai komunikasi dua hala dengan menghantar mesej.

  1. Cara melaksanakan PHP Websocket

PHP Websocket boleh dilaksanakan melalui perpustakaan pihak ketiga, yang paling biasa digunakan ialah Ratchet dan Swoole. Artikel ini akan menggunakan Ratchet sebagai contoh untuk memperkenalkan kaedah pelaksanaan khusus.

2. Pasang Ratchet

Ratchet ialah perpustakaan Websocket PHP yang boleh membantu kami membina pelayan Websocket dengan cepat. Kami boleh memasangnya melalui Komposer.

  1. Laksanakan arahan berikut dalam direktori akar projek untuk memasang Komposer:
curl -sS https://getcomposer.org/installer | php
  1. Buat fail composer.json dalam direktori akar projek dan tambah kandungan berikut:
{
    "require": {
        "cboden/ratchet": "^0.4"
    }
}
  1. Melaksanakan arahan berikut untuk memasang Ratchet :
php composer.phar install

三, Buat pelayan Websocket

Seterusnya, kami akan mencipta pelayan Websocket mudah dan melaksanakan beberapa fungsi asas.

  1. Buat fail bernama server.php dan tambah kod berikut:
<?php
use RatchetServerIoServer;
use RatchetHttpHttpServer;
use RatchetWebSocketWsServer;

require 'vendor/autoload.php';

class MyServer 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 onMessage(RatchetConnectionInterface $from, $msg) {
        foreach ($this->clients as $client) {
            $client->send($msg);
        }
    }

    public function onClose(RatchetConnectionInterface $conn) {
        $this->clients->detach($conn);
        echo "Connection closed! ({$conn->resourceId})
";
    }

    public function onError(RatchetConnectionInterface $conn, Exception $e) {
        echo "An error occurred: {$e->getMessage()}
";
        $conn->close();
    }
}

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new MyServer()
        )
    ),
    8080
);

$server->run();
  1. Lakukan arahan berikut untuk memulakan pelayan Websocket:
php server.php

4. Cipta permainan Web dalam talian yang mudah

, kita dengan pelayan boleh Melaksanakan beberapa fungsi permainan dalam talian yang mudah.

  1. Buat fail bernama index.html dan tambah kod berikut:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>在线游戏</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        var conn = new WebSocket('ws://localhost:8080');
        
        conn.onopen = function() {
            conn.send('Hello, Server!');
        };

        conn.onmessage = function(e) {
            console.log('Server: ' + e.data);
        };
        
        function sendMsg() {
            var msg = $('#msg').val();
            if (msg != '') {
                conn.send(msg);
                $('#msg').val('');
            }
        }
    </script>
</head>
<body>
    <input type="text" id="msg" placeholder="请输入消息">
    <button onclick="sendMsg()">发送</button>
</body>
</html>
  1. Buka index.html dalam pelayar, masukkan mesej dan klik butang hantar untuk menghantar mesej ke pelayan Websocket.
  2. Dalam kod pelayan Websocket, pemprosesan yang sepadan boleh dijalankan mengikut mesej yang diterima untuk melaksanakan logik permainan.

Di atas ialah tutorial asas menggunakan PHP untuk membangunkan Websocket dan melaksanakan fungsi permainan dalam talian. Dengan mempelajari dan menguasai pengetahuan ini, kita boleh membangunkan aplikasi yang lebih kompleks dan kaya. Saya harap artikel ini dapat membantu semua orang!

Atas ialah kandungan terperinci Tutorial pembangunan PHP Websocket untuk melaksanakan fungsi permainan dalam talian dengan mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn