Apakah dukungan PHP asli untuk Web Sockets tersedia?

Mencari Contoh Implementasi Soket Web Tipe Hello World:

Berikut adalah referensi Socket Create dari php.net tetapi ini terlihat lebih rendah daripada Web Sockets .

Saya ingin menggunakan Soket Web ini seperti yang ditunjukkan di sini di caniuse.com yang sekarang diterapkan di semua browser utama baru.

Pencarian Google menemukan situs Nets.TutsPlus di mana saya dapat menggunakan kode contoh JavaScript...tapi saya perlu tahu cara mengimplementasikan sisi server di PHP bukan Java, Ruby, atau Node.js seperti pada contoh.

Apakah PHP Socket Create relevan? Apakah PHP secara asli mendukung Web Sockets? Saya kira satu titik ke arah yang benar untuk implementasi PHP akan membantu.

Sebenarnya tutorial ini memiliki link rusak ke phpwebsockets...apakah ini perpustakaan yang harus digunakan?

Websockets.org memiliki aplikasi pengujian, namun tidak menyebutkan PHP.


person Community    schedule 30.08.2012    source sumber
comment
Ini mungkin dapat membantu: Pemrograman Socket PHP, dilakukan dengan Cara yang Benar   -  person ChocoDeveloper    schedule 30.08.2012
comment
Googling PHP Websockets memberi Anda banyak hasil seperti: socketo.me, flynsarmy.com/2012/02/php-websocket-chat-application-2-0, code.google.com/p/phpwebsocket   -  person scrappedcola    schedule 30.08.2012
comment
Saya tidak melihat arah yang jelas tentang cara mendekati Soket Web di PHP....apakah didukung secara asli atau apakah saya memerlukan perpustakaan lain...akan menjadi pertanyaan pertama saya tentang cara mengimplementasikannya?....   -  person    schedule 30.08.2012
comment
Dalam pencarian Anda, jangan bingung membedakan soket dengan soket web.   -  person Brad    schedule 30.08.2012
comment
Pertanyaan bagus. Ini yang ingin saya tanyakan.   -  person Gunah Gaar    schedule 08.04.2013
comment
Perbedaan antara soket dan soket web?   -  person ashleedawg    schedule 29.11.2020


Jawaban (2)


Tidak ada dukungan asli dalam hal keberadaan objek PHP WebSocket standar yang tersedia secara asli.

Anda harus menggunakan perpustakaan.

Hal berikutnya yang perlu dipertimbangkan adalah bagaimana server WebSocket berjalan. Biasanya PHP berjalan di Apache, Nginx (via FastCGI) atau di Microsoft IIS (via Fast CGI). Dengan Apache dan IIS, hal ini mungkin menjadi masalah karena tidak benar-benar dibangun dengan mempertimbangkan koneksi persisten seperti WebSockets. Saya tidak yakin tentang Nginx. Inilah sebabnya mengapa sebagian besar perpustakaan PHP WebSocket akan dibangun sebagai perpustakaan mandiri untuk dijalankan sebagai prosesnya sendiri.

Melihat:

Catatan: IE10 kini dirilis di Windows 8

Lihat juga: Sistem push Ajax

person leggetter    schedule 30.08.2012
comment
Apakah penyedia host mendukung hal ini? yang kecil...seperti godaddy.com, wiredtree.com, pada dasarnya saya hanya memilih perpustakaan dan kemudian memasukkannya ke folder web saya...masalahnya saya berada di tumpukan LAMP... - person ; 31.08.2012
comment
Jawaban umum untuk hal ini adalah penyedia hosting tidak menyukai Anda membuat koneksi persisten - dan tentunya tidak berpotensi menghasilkan 100 atau 1000 koneksi persisten. Secara pribadi, menurut saya penggunaan WebSocket yang dihosting sendiri di shared hosting tidak akan menjadi pilihan untuk waktu yang cukup lama. Ini tentu saja tidak terintegrasi dengan baik dengan tumpukan LAMP standar IMHO. Untuk saat ini, menurut saya layanan yang dihosting seperti Pusher (tempat saya bekerja) adalah solusi terbaik bagi pengembang di jaringan bersama. menghosting tumpukan LAMP. - person leggetter; 31.08.2012
comment
Saya memeriksa dengan Dukungan Teknis di Wired Tree dan mereka mengatakan itu baik-baik saja. - person ; 02.09.2012
comment
@leggetter dapatkah Anda memberikan tautan tentang kebencian koneksi yang terus-menerus? penggunaan bandwidth saya anjlok ketika saya beralih ke 100% ajax. Itu turun pada tingkat yang hampir sama setelah masuk ke soket web 100%. Jadi saya sangat penasaran. Terima kasih sebelumnya! - person ; 02.11.2013
comment
@Gracchus benci koneksi terus-menerus? Jika Anda dapat menjelaskan, saya akan melakukan apa yang saya bisa untuk membantu. - person leggetter; 04.11.2013
comment
@leggetter hanya mencoba menghemat ruang. re: Jawaban umum untuk hal ini adalah bahwa penyedia hosting tidak menyukai Anda membuat koneksi persisten - dan tentunya tidak berpotensi menghasilkan 100 atau 1000 koneksi persisten. satu-satunya hal yang terpikir oleh saya adalah diasumsikan websockets akan menggunakan lebih banyak bandwidth, tetapi saya menggunakan lebih sedikit bandwidth dengan websockets vs ajax vs postback. ingin tahu apakah Anda memiliki detail tentang komentar itu. terima kasih sekali lagi sebelumnya! - person ; 04.11.2013
comment
@Gracchus masalahnya bukan pada bandwidth, melainkan jumlah koneksi persisten. Secara umum, biaya pemeliharaan koneksilah yang menghabiskan penggunaan sumber daya. Jika Anda mempertimbangkan hal ini saat menggunakan hosting bersama, maka jelas memiliki satu aplikasi dengan banyak koneksi persisten dapat memengaruhi aplikasi lain di host bersama. Penyedia PaaS seperti Heroku dan OpenShift baru saja menambahkan dukungan WebSocket - Heroku masih dalam versi beta. OpenShift menulis tentang beberapa tantangan yang mereka hadapi openshift.com/blogs/paas-websockets - person leggetter; 04.11.2013
comment
@leggetter dapatkah Anda memberikan tautan tentang penggunaan sumber daya koneksi persisten? Saya tidak melihatnya di tautan yang Anda berikan, tapi terima kasih telah menunjukkan kepada saya bahasa-bahasa sulit seperti php, Ruby, dll yang harus dilalui untuk dapat aktif dan berjalan dengan Apache! terima kasih banyak lagi sebelumnya! - person ; 04.11.2013
comment
@Gracchus Saya khawatir tidak ada tautan ke artikel yang menjawab pertanyaan Anda secara langsung. Anda dapat menyatukan potongan-potongan teka-teki tersebut dengan membaca modul Apache MPM ini adalah awal yang baik (lihat Prefork khususnya), Modul acara MPM Apache, sumber daya lama dan yang lebih baru. Maaf, mereka tidak langsung menjawab pertanyaan tersebut. - person leggetter; 04.11.2013
comment
@Gracchus - Apa yang dikatakan oleh leggetter adalah pengetahuan umum. Membuka soket ke dunia luar menimbulkan banyak masalah, terutama ketika layanan sering kali direkayasa oleh pembuat kode pemula. Anda memiliki masalah pengelolaan proses, masalah manajemen koneksi, masalah keamanan (setiap port yang terbuka pada dasarnya adalah pintu ke dalam sistem), dll. Selain itu, jika layanan tidak rusak, tidak penuh dengan masalah keamanan, dan berjalan secara efisien, itu pada dasarnya menjadi layanan pesaing bagi penyedia. Tidak banyak model bisnis yang terbuka terhadap hal seperti itu. - person JSON; 17.01.2014
comment
Untuk versi PHP manakah hal ini benar? Apakah ini masih benar untuk yang terbaru? - person YakovL; 12.09.2016
comment
artikel/tutorial yang mendemonstrasikan cara menggunakan websockets PHP dengan 'ghedipunk/PHP-WebSockets', Elephant.io, Rachet dan Wrench - person Rusty; 11.10.2017
comment
Saya juga membuat Sandstone: github.com/eole-io/sandstone dan saya menggunakannya saat saya memerlukan server websocket dengan rest api dan acara push - person Alcalyn; 30.01.2018

Ya, PHP + Websocket dapat dilakukan dengan sangat sederhana, tanpa perpustakaan pihak ketiga mana pun (seperti Ratchet, yang sering disebutkan).

artikel ini adalah contoh ringan yang bagus. (Saya kehilangan waktu berjam-jam dengan solusi yang kompleks, semuanya termasuk beberapa perpustakaan, sampai saya menemukan artikel yang berguna dan sederhana ini)

Anda dapat menemukan petunjuk lebih detail tentang ini di sini: Cara membuat soket web server di PHP.

Ia menggunakan server PHP yang berjalan terus-menerus, yang Anda mulai dari baris perintah dengan php websockets.php, dengan event-loop (mirip dengan cara Node.JS). 100% mungkin untuk menggunakan fungsi PHP asli seperti socket_create, dll.

person Basj    schedule 30.01.2021
comment
Inilah yang saya inginkan!. TERIMA KASIH SAYANG. Saya sangat tertarik dengan cara kerja dalam pemrograman tingkat rendah. - person Imali7 ARF; 18.04.2021