Dengan pempopularan Internet dan kepelbagaian aplikasi Web, pengguna mempunyai permintaan yang lebih tinggi dan lebih tinggi untuk komunikasi masa nyata dan push mesej segera. Protokol HTTP tradisional tidak dapat memenuhi keperluan ini kerana setiap komunikasi memerlukan sambungan baharu dan pelayan tidak boleh menghantar data secara aktif kepada klien. Atas sebab ini, WebSockets wujud.
WebSockets ialah protokol komunikasi dua hala yang membolehkan pelanggan dan pelayan mewujudkan sambungan berterusan yang melaluinya kedua-dua pihak boleh bertukar-tukar data dalam masa nyata. Pengaturcaraan WebSockets PHP ialah pelaksanaan berdasarkan bahasa PHP, yang membolehkan pembangun melaksanakan komunikasi masa nyata dan push mesej dengan lebih mudah, membawa perkembangan baharu kepada pengaturcaraan Web. Berikut akan memperkenalkan pengetahuan berkaitan pengaturcaraan WebSockets PHP dan cara melaksanakan komunikasi masa nyata dan push mesej.
1. Prinsip asas WebSockets
Protokol WebSockets adalah berdasarkan protokol TCP, jadi ia boleh dipercayai dan cekap. Apabila membuat sambungan WebSockets, klien menghantar permintaan HTTP kepada pelayan, yang mengandungi pengepala Naik Taraf khas yang memberitahu pelayan menukar protokol daripada HTTP kepada WebSockets. Selepas pelayan menemui pengepala ini, ia akan berjabat tangan dengan protokol dan mewujudkan sambungan berterusan Kedua-dua pihak boleh berkomunikasi dalam masa nyata dan menolak mesej melalui sambungan ini.
Protokol komunikasi WebSockets ialah protokol berasaskan bingkai yang membahagikan data kepada berbilang bingkai untuk penghantaran Setiap bingkai mengandungi opcode, panjang data muatan dan data muatan. Opcode menunjukkan jenis bingkai, panjang data muatan menunjukkan panjang data muatan, dan data muatan ialah data sebenar yang akan dihantar. Kedua-dua pelanggan dan pelayan boleh menghantar bingkai, dan berbilang mesej boleh terkandung dalam bingkai yang sama. Apabila komunikasi antara kedua-dua pihak berakhir, sambungan boleh ditutup dengan menghantar bingkai rapat khas.
2. Cara melaksanakan pengaturcaraan WebSockets dalam PHP
Terdapat banyak cara untuk melaksanakan pengaturcaraan WebSockets dalam PHP, termasuk menggunakan perpustakaan pihak ketiga dan menggunakan kod PHP asli. Antaranya, menggunakan perpustakaan pihak ketiga adalah lebih mudah dan lebih pantas, manakala menggunakan kod PHP asli adalah lebih fleksibel dan percuma. Kandungan khusus kedua-dua kaedah pelaksanaan ini diperkenalkan di bawah.
Menggunakan perpustakaan pihak ketiga ialah cara paling mudah untuk melaksanakan pengaturcaraan WebSockets dalam PHP. Perpustakaan pihak ketiga yang popular pada masa ini termasuk Ratchet dan phpWebSocket.
Antaranya, Ratchet ialah perpustakaan PHP sumber terbuka yang menyediakan satu set kelas dan antara muka untuk melaksanakan pelayan dan pelanggan WebSockets. Menggunakan Ratchet, pembangun boleh dengan mudah mewujudkan sambungan WebSockets dan mengendalikan permintaan pelanggan pada pelayan. Selain itu, Ratchet menyokong berbilang piawaian WebSockets dan boleh digunakan dalam pelayar dan peranti yang berbeza.
Satu lagi pustaka pihak ketiga yang biasa digunakan ialah phpWebSocket, yang merupakan perpustakaan pelayan WebSockets untuk PHP Ia menyediakan antara muka seperti Ratchet dan boleh melaksanakan pelayan dan klien WebSockets dengan mudah.
Menggunakan kod PHP asli untuk melaksanakan pengaturcaraan WebSockets memerlukan anda menulis satu set protokol sendiri dan mewujudkan sambungan pada soket PHP. Kaedah pelaksanaan ini agak kompleks dan memerlukan pembangun mempunyai pengalaman pengaturcaraan rangkaian tertentu.
Langkah pelaksanaan khusus adalah seperti berikut:
Mula-mula, tetapkan alamat IP dan nombor port pelayan dan cipta soket. Tetapkan pilihan yang sesuai pada soket, seperti SO_REUSEADDR, yang membenarkan berbilang soket untuk mengikat ke alamat dan port tempatan yang sama.
Kedua, ikat soket ke alamat dan port yang sepadan melalui fungsi socket_bind().
Kemudian, gunakan fungsi socket_listen() untuk menetapkan soket kepada keadaan mendengar dan tetapkan bilangan maksimum sambungan. Dalam gelung, gunakan fungsi socket_accept() untuk menunggu permintaan sambungan klien dan buat soket baharu untuk berkomunikasi dengan klien.
Akhir sekali, terima data daripada klien melalui fungsi socket_recv() dan kembalikan data kepada klien menggunakan fungsi socket_send(). Apabila komunikasi tamat, gunakan fungsi socket_close() untuk menutup soket.
3 Kaedah khusus untuk mencapai komunikasi masa nyata dan push mesej
Untuk mencapai komunikasi masa nyata dan push mesej, anda perlu memenuhi langkah berikut:
Apabila komunikasi tamat, sambungan WebSockets perlu ditutup. Sebelum menutup sambungan, anda boleh menghantar mesej kepada klien untuk memaklumkan bahawa sambungan akan ditutup.
4 Ringkasan
WebSockets ialah protokol komunikasi baharu yang boleh mencapai komunikasi dua hala dan kemas kini data masa nyata, memenuhi keperluan komunikasi masa nyata dan tolakan mesej majoriti pengguna. . Pengaturcaraan WebSockets PHP menyediakan kaedah pelaksanaan yang memudahkan pembangun melaksanakan komunikasi masa nyata dan push mesej. Sama ada anda menggunakan perpustakaan pihak ketiga atau kod PHP asli, selagi anda menguasai prinsip asas dan teknologi pelaksanaan berkaitan WebSockets, anda boleh dengan mudah melaksanakan komunikasi masa nyata dan push mesej dalam pengaturcaraan Web.
Atas ialah kandungan terperinci Pengaturcaraan WebSockets dalam PHP: kaedah pembangunan baharu untuk komunikasi masa nyata dan menolak mesej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!