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:
- Persekitaran pelayan: PHP 7.0 atau lebih tinggi, menyokong sambungan WebSocket, seperti sambungan swoole.
- 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:
- Storan data: Gunakan pangkalan data (seperti MySQL) untuk menyimpan data berkaitan pengundian, termasuk pilihan pengundian dan statistik pengundian tunggu.
- Pelayan WebSocket: Gunakan sambungan WebSocket PHP (seperti swoole) sebagai pelayan untuk menerima permintaan sambungan pelanggan dan push mesej.
- Pelanggan WebSocket: Pelanggan WebSocket yang ditulis dalam JavaScript, digunakan untuk komunikasi masa nyata dengan pelayan.
- 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:
-
Buat jadual pangkalan data
Buat jadual dalam MySQL untuk menyimpan pilihan undian Susunan jadual adalah seperti berikut:
Tulis Kod pelayan 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: 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`)
);
Salin selepas log masuk
Tulis kod pelanggan 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: <?php
// 创建WebSocket服务器
$server = new SwooleWebSocketServer('0.0.0.0', 9501);
// 当有新的连接建立时
$server->on('open', function ($server, $request) {
// 解析请求中的投票选项ID
$optionId = $_GET['option_id'];
// 更新数据库中对应选项的投票数量
// 推送投票统计结果给所有已连接的客户端
});
// 启动服务器
$server->start();
Salin selepas log masuk
Kemas kini pangkalan data dan tolak statistik pengundian 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: <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>
Salin selepas log masuk
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!