Saya sedang membangun aplikasi web yang perlu berkomunikasi dengan aplikasi lain menggunakan koneksi soket. Ini adalah wilayah baru bagi saya, jadi ingin memastikan bahwa soket berbeda dari soket web . Sepertinya mereka hanya mirip secara konseptual.
Bertanya karena pada awalnya saya berencana menggunakan Django sebagai dasar untuk proyek saya, tetapi dalam pos SO yang saya tautkan di atas, menjadi sangat jelas bahwa websockets tidak mungkin (atau setidaknya tidak dapat diandalkan, bahkan dengan sesuatu seperti django-websockets ) menggunakan pengaturan Django yang disukai (Apache dengan mod_wsgi). Namun saya telah menemukan posting lain yang dengan santai mengimpor modul soket Python untuk sesuatu yang sederhana seperti meraih nama host server .
Begitu:
- Apakah mereka benar-benar berbeda?
- Apakah ada alasan untuk tidak menggunakan Django untuk proyek yang bergantung pada koneksi soket dengan server luar?
Soket web menggunakan soket dalam implementasinya. Soket web didasarkan pada protokol standar (sekarang dalam panggilan terakhir, tetapi belum final) yang mendefinisikan koneksi "jabat tangan" dan pesan "bingkai." Kedua belah pihak melalui prosedur jabat tangan untuk saling menerima koneksi dan kemudian menggunakan format pesan standar ("bingkai") untuk meneruskan pesan bolak-balik.
Saya mengembangkan kerangka kerja yang akan memungkinkan Anda untuk berkomunikasi secara langsung mesin ke mesin dengan perangkat lunak yang diinstal. Mungkin sesuai dengan tujuan Anda. Anda dapat mengikuti blog saya jika ingin: http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html
sumber
Anda harus menggunakan WebSockets (atau beberapa protokol yang sama modul misalnya karena didukung oleh Flash plugin) karena aplikasi browser yang normal tidak bisa membuka TCP socket murni.
The
Socket.IO
modul yang tersedia untuknode.js
dapat membantu banyak, tapi catatan bahwa tidak modul WebSocket murni dalam dirinya sendiri.Ini sebenarnya modul komunikasi yang lebih umum yang dapat berjalan di atas berbagai protokol jaringan lainnya, termasuk WebSockets, dan soket Flash.
Oleh karena itu, jika Anda ingin menggunakan
Socket.IO
pada server Anda juga harus menggunakan kode dan objek klien mereka. Anda tidak dapat dengan mudah membuatWebSocket
koneksi mentah kesocket.io
server karena Anda harus meniru protokol pesan mereka.sumber
WebSocket hanyalah protokol tingkat aplikasi lain melalui protokol TCP, sama seperti HTTP.
Beberapa cuplikan <Spring in Action 4> yang dikutip di bawah ini, semoga dapat membantu Anda memahami WebSocket dengan lebih baik.
sumber
Mengenai pertanyaan Anda (b), ketahuilah bahwa spesifikasi Websocket belum selesai. Menurut W3C :
Secara pribadi saya menganggap Websockets terlalu panjang untuk digunakan saat ini. Meskipun saya mungkin akan menemukan mereka berguna dalam satu tahun atau lebih.
sumber