gwsocket adalah Server WebSocket yang sederhana, mandiri, agnostik bahasa, dan sesuai dengan RFC6455, ditulis dalam C. Ia berada di antara aplikasi Anda dan browser klien, memberikan komunikasi dua arah yang cepat antara keduanya dengan mudah dan fleksibel. Info lebih lanjut di: https://gwsocket.io.
Sangat sederhana, cukup arahkan output dari aplikasi Anda (stdout) ke stdin
atau ke file (bernama pipa) dan biarkan gwsocket mentransfer data ke browser — Itu saja.
Misalnya, memasukkan log server Anda ke browser sangatlah mudah
# tail -f /var/log/nginx/access.log > /tmp/wspipein.fifo
ATAU
# tail -f /var/log/nginx/access.log | gwsocket
Anda juga bisa memasukkan data klien ke dalam (stdin) aplikasi Anda. Bahkan, Anda bahkan dapat mengirimkan keluaran program ncurses favorit Anda ke browser. Lihat screencast di atas.
Saya memerlukan Server WebSocket yang cepat , sederhana , tanpa ketergantungan , tanpa perpustakaan , dan sesuai dengan RFC6455 yang ditulis dalam C yang dapat saya gunakan untuk GoAccess versi 1.0 hanya dengan menyalurkan data masuk dan keluar — WebSockets menjadi mudah!
gwsocket tidak mengenal bahasa, lihat Halaman Man untuk detail lebih lanjut dan contoh cara menerima data dari browser dan cara mengirimkannya ke browser.
Menginstal gwsocket cukup mudah. Cukup unduh, ekstrak, dan kompilasi dengan:
$ wget https://tar.gwsocket.io/gwsocket-0.4.tar.gz
$ tar -xzvf gwsocket-0.4.tar.gz
$ cd gwsocket-0.4/
$ ./configure
$ make
# make install
Tidak diperlukan ketergantungan. Bagus sekali bukan :), hampir saja, Anda memerlukan gcc
, make
, dll.
$ git clone s://github.com/allinurl/gwsocket.git
$ cd gwsocket
$ autoreconf -fiv
$ ./configure
$ make
# make install
Untuk membuat saluran antara aplikasi Anda dan browser klien, gwsocket menyediakan dua metode yang memungkinkan pengguna mengirim data masuk dan keluar. Yang pertama adalah melalui penggunaan input standar (stdin), dan output standar (stdout). Metode kedua adalah melalui header berukuran tetap diikuti dengan payload. Lihat opsi di bawah untuk lebih jelasnya.
Input/output standar adalah cara paling sederhana untuk mengirim/menerima data ke/dari klien. Namun, itu terbatas pada menyiarkan pesan ke semua klien. Untuk mengirim pesan ke atau menerima dari klien tertentu, gunakan mode ketat di bagian berikutnya. Lihat contoh spesifik bahasa di sini.
gwsocket mengimplementasikan protokol kecilnya sendiri untuk mengirim/menerima data. Berbeda dengan mode stdin/stdout , mode ketat memungkinkan Anda mengirim/menerima data ke/dari klien tertentu yang terhubung serta melacak siapa yang membuka/menutup koneksi WebSocket. Ini juga memberi Anda kemampuan untuk mengemas dan mengirim data sebanyak yang Anda inginkan dalam satu pesan. Lihat contoh spesifik bahasa di sini.
Opsi berikut dapat diberikan ke baris perintah.
Opsi Baris Perintah | Keterangan |
---|---|
-p --port | Menentukan port yang akan diikat. |
-h --help | Bantuan baris perintah. |
-V --version | Tampilkan informasi versi dan keluar. |
--access-log=<path/file> | Menentukan jalur/file untuk log akses. |
--addr=<addr> | Menentukan alamat yang akan diikat. |
--echo-mode | Atur server untuk menggemakan semua pesan yang diterima. |
--max-frame-size=<bytes> | Ukuran maksimum bingkai soket web. |
--origin=<origin> | Pastikan klien mengirimkan header Asal yang ditentukan saat jabat tangan. |
--pipein=<path/file> | Membuat pipa bernama (FIFO) yang membaca dari jalur/file tertentu. |
--pipeout=<path/file> | Membuat pipa bernama (FIFO) yang menulis ke jalur/file tertentu. |
--std | Aktifkan --stdin dan --stdout . |
--stdin | Kirim stdin ke soket web. |
--stdout | Kirim data websocket yang diterima ke stdout. |
--strict | Parsing pesan menggunakan mode ketat. Lihat halaman manual untuk lebih jelasnya. |
--ssl-cert=<cert.crt> | Jalur menuju sertifikat SSL. |
--ssl-key=<priv.key> | Jalur ke kunci pribadi SSL. |
--unix-socket=<addr> | Tentukan alamat soket domain UNIX untuk mengikat server. |
epoll
dan kqueue
Berlisensi MIT
Bantuan apa pun tentang gwsocket diterima. Cara yang paling bermanfaat adalah dengan mencobanya dan memberikan masukan. Jangan ragu untuk menggunakan pelacak masalah Github dan menarik permintaan untuk mendiskusikan dan mengirimkan perubahan kode.
Menikmati!