Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Membangunkan fungsi pengundian dalam talian menggunakan php dan Websocket

Membangunkan fungsi pengundian dalam talian menggunakan php dan Websocket

WBOY
WBOYasal
2023-12-02 08:50:17671semak imbas

Membangunkan fungsi pengundian dalam talian menggunakan php dan Websocket

Menggunakan PHP dan WebSocket untuk membangunkan fungsi pengundian dalam talian

Pengenalan

Dengan perkembangan pesat Internet, semakin banyak aktiviti tradisional telah berhijrah secara beransur-ansur ke platform dalam talian. Salah satunya ialah kempen mengundi. Dengan menggunakan gabungan teknologi PHP dan WebSocket, kami boleh melaksanakan fungsi pengundian dalam talian yang mudah dan praktikal. Artikel ini akan memperkenalkan cara membangunkan sistem pengundian dalam talian yang lengkap menggunakan PHP dan WebSocket, dan menyediakan beberapa contoh kod khusus.

Keperluan Sistem

Untuk melaksanakan fungsi pengundian dalam talian, kami perlu memenuhi keperluan sistem berikut:

  1. Persekitaran pelayan: PHP 7.0 atau lebih tinggi, menyokong sambungan WebSocket, seperti sambungan swoole.
  2. Pelayar klien: penyemak imbas yang menyokong HTML5, seperti Chrome, Firefox, dsb.

Reka bentuk seni bina

Sebelum mereka bentuk sistem pengundian dalam talian, kita perlu menentukan beberapa fungsi utama dan kaedah pelaksanaan:

  1. Storan data: Gunakan pangkalan data (seperti MySQL) untuk menyimpan data berkaitan pengundian, termasuk pilihan pengundian dan statistik pengundian tunggu.
  2. Pelayan WebSocket: Gunakan sambungan WebSocket PHP (seperti swoole) sebagai pelayan untuk menerima permintaan sambungan pelanggan dan push mesej.
  3. Pelanggan WebSocket: Pelanggan WebSocket yang ditulis dalam JavaScript, digunakan untuk komunikasi masa nyata dengan pelayan.
  4. Antara Muka Pengguna: Gunakan HTML, CSS dan JavaScript untuk melaksanakan antara muka pengguna untuk memaparkan pilihan undian dan paparan masa nyata statistik undian.

Langkah pelaksanaan

Langkah-langkah berikut akan diikuti untuk melaksanakan fungsi undian dalam talian:

  1. Buat jadual pangkalan data
    Buat jadual dalam MySQL untuk menyimpan pilihan undian Susunan jadual adalah seperti berikut:

    Tulis Kod pelayan
  2. Mula-mula anda perlu memasang sambungan swoole, kemudian buat pelayan WebSocket dan dengarkan port yang ditentukan. Apabila sambungan baharu diwujudkan, dapatkan ID pilihan mengundi pelanggan dan kemas kini bilangan undian untuk pilihan yang sepadan dalam pangkalan data. Contoh kod adalah seperti berikut:
  3. CREATE TABLE `voting_options` (
     `id` int(11) NOT NULL AUTO_INCREMENT,
     `option_name` varchar(255) NOT NULL,
     `vote_count` int(11) NOT NULL DEFAULT '0',
     PRIMARY KEY (`id`)
    );


    Tulis kod pelanggan
  4. Dalam HTML, tambahkan butang untuk pilihan mengundi dan gunakan JavaScript untuk mencipta sambungan WebSocket untuk mendengar tolakan mesej daripada pelayan. Apabila butang diklik, gunakan WebSocket untuk menghantar ID pilihan mengundi ke pelayan. Contoh kod adalah seperti berikut:
  5. <?php
    // 创建WebSocket服务器
    $server = new SwooleWebSocketServer('0.0.0.0', 9501);
    
    // 当有新的连接建立时
    $server->on('open', function ($server, $request) {
        // 解析请求中的投票选项ID
        $optionId = $_GET['option_id'];
    
        // 更新数据库中对应选项的投票数量
    
        // 推送投票统计结果给所有已连接的客户端
    });
    
    // 启动服务器
    $server->start();


    Kemas kini pangkalan data dan tolak statistik pengundian
  6. Dalam kod pelayan, mengikut ID pilihan mengundi yang diterima, kemas kini bilangan undian untuk pilihan yang sepadan dalam pangkalan data. Kemudian, tolak keputusan statistik undian kepada semua pelanggan yang disambungkan melalui WebSocket. Contoh kod adalah seperti berikut:
  7. <html>
    <head>
        <!-- 引入jQuery库 -->
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    </head>
    <body>
        <!-- 添加投票选项的按钮 -->
        <button id="option1" onclick="vote(1)">选项1</button>
        <button id="option2" onclick="vote(2)">选项2</button>
        <button id="option3" onclick="vote(3)">选项3</button>
    
        <!-- 引入WebSocket客户端代码 -->
        <script>
            // 创建WebSocket连接
            var socket = new WebSocket('ws://localhost:9501');
    
            // 监听服务端的消息推送
            socket.onmessage = function(event) {
                // 更新投票统计结果
            };
    
            // 投票函数
            function vote(optionId) {
                // 发送投票选项ID给服务端
            }
        </script>
    </body>
    </html>


    Ringkasan
Artikel ini memperkenalkan cara untuk membangunkan fungsi pengundian dalam talian yang mudah menggunakan PHP dan WebSocket. Dengan menggunakan PHP sebagai pelayan, HTML, CSS dan JavaScript untuk melaksanakan antara muka pengguna, dan WebSocket untuk komunikasi masa nyata, kami boleh melaksanakan sistem pengundian dalam talian yang mengemas kini statistik pengundian dalam masa nyata. Perlu diingatkan bahawa kod sampel ini hanyalah contoh mudah Dalam situasi sebenar, beberapa pelarasan dan pengoptimuman mungkin diperlukan berdasarkan keperluan tertentu. Saya harap artikel ini dapat membantu dalam membangunkan keupayaan mengundi dalam talian.

Atas ialah kandungan terperinci Membangunkan fungsi pengundian dalam talian menggunakan php dan Websocket. 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