Socket.IO vs. Memutar [ditutup]

Ide saya adalah membangun aplikasi chatting sederhana untuk iOS dan Android. Bagaimanapun, pertanyaan saya terkait dengan sisi server. Pilihan terbaik untuk melakukan aplikasi obrolan, dari apa yang saya baca, adalah dengan membangun soket. Mengacu pada database, niat saya adalah menggunakan MySQL, yang mungkin juga penting untuk dipertimbangkan untuk memilih salah satu kemungkinan.

Pertanyaan saya adalah, dalam hal skalabilitas, kecepatan dan keamanan, mana yang merupakan pilihan terbaik: membangun soket dengan Python menggunakan Twisted atau dengan NodeJS menggunakan Socket.IO?

Saya rasa mungkin ada kemungkinan lain untuk membuat soket yang efisien, tetapi sekarang saya sedang mempertimbangkan dua kemungkinan ini. Saya akan sangat menghargai jika Anda bisa memberi saya saran.


person IOS_DEV    schedule 31.10.2013    source sumber
comment
Banyak pertanyaan bagus yang menghasilkan opini tertentu berdasarkan pengalaman para ahli, namun jawaban terhadap pertanyaan ini cenderung hampir seluruhnya berdasarkan opini, bukan fakta, referensi, atau keahlian tertentu. Pilihan terbaik akan bergantung pada terlalu banyak parameter untuk dijawab dalam format ini.   -  person Lix    schedule 31.10.2013
comment
Namun, misalnya dalam hal kecepatan, pasti ada jawaban yang obyektif. Bagaimanapun, mendengarkan pendapat dari orang-orang yang pernah bekerja dengan perpustakaan ini bukanlah hal yang buruk.   -  person IOS_DEV    schedule 31.10.2013
comment
Ini akan menjadi buruk karena jawaban yang hanya berdasarkan opini tidak dianggap berguna di Stack Overflow.   -  person Lix    schedule 31.10.2013
comment
@IOS_DEV Belum tentu ada jawaban objektif untuk kecepatan, karena hal ini sangat bergantung pada beban kerja Anda dan apa yang ingin Anda lakukan. Selain itu, kecepatan biasanya menjadi salah satu kekhawatiran terakhir yang harus Anda miliki; jika Anda berbicara tentang aplikasi obrolan sederhana, biasanya Anda tidak memerlukan sesuatu yang berkinerja tinggi. Pertanyaan sebenarnya adalah: apakah Anda lebih suka menulis Python atau JavaScript? Dan mana yang memungkinkan Anda mengaktifkan dan menjalankan MVP lebih cepat? Rekomendasi saya adalah meluangkan waktu untuk mencoba masing-masingnya; mengumpulkan bukti cepat dari aplikasi obrolan konsep.   -  person Brian Campbell    schedule 31.10.2013
comment
@Lix Tapi opini mungkin mencerminkan apakah suatu opsi lebih ramah pengembang atau tidak, yang juga penting. Apalagi jika seseorang mempunyai pendapat konkrit tentang beberapa di antaranya, bisa berdasarkan pengalaman pribadi atau aspek konkrit perpustakaan. Apapun alasan pendapat mereka, alasan ini dapat membantu saya untuk memilih salah satu pilihan.   -  person IOS_DEV    schedule 31.10.2013
comment
@IOS_DEV - ini adalah pedoman dan aturan Stack Overflow. Kami di sini bukan untuk membahas validitasnya. Jika Anda memiliki masalah atau pendapat tentang cara situs beroperasi, ada Meta Stack Overflow - situs yang didedikasikan untuk mendiskusikan Stack Overflow dan situs lain di jaringan Stack Exchange.   -  person Lix    schedule 31.10.2013
comment
Oke @BrianCampbell, saya rasa saya akan mencoba keduanya untuk melihat perbedaannya   -  person IOS_DEV    schedule 31.10.2013
comment
Terima kasih @Lix, saya akan mempertimbangkannya lebih serius untuk pertanyaan selanjutnya! ;) Sekarang, apa yang Anda sarankan agar saya lakukan dengan yang satu ini?   -  person IOS_DEV    schedule 31.10.2013
comment
@IOS_DEV - saran yang berkaitan dengan postingan tersebut? Saya sarankan Anda mencoba menerapkan salah satu metode yang Anda detailkan dan hanya jika Anda menemukan masalah tertentu, kembalilah dan posting tentangnya termasuk kode yang bermasalah. Berdasarkan kondisi saat ini, menurut saya postingan ini harus dihapus. Namun ini hanya pendapat saya.   -  person Lix    schedule 31.10.2013
comment
@Lix Oke, saya akan menggunakan StackOverFlow jika saya memiliki pertanyaan spesifik tentang kode ketika saya mencoba menerapkan salah satu opsi. Saya tidak akan menghapus pertanyaannya sekarang, saya akan menunggu apakah ada yang ingin mengatakan sesuatu yang menarik.   -  person IOS_DEV    schedule 31.10.2013


Jawaban (1)


Membandingkan Twisted dan Socket.io membandingkan apel dengan truk yang membawa apel. Twisted adalah perpustakaan yang menyediakan fungsionalitas pemrograman berorientasi peristiwa untuk Python. Dalam javascript itu hanyalah javascript itu sendiri (baik itu node.js atau browser web atau bahkan badak).

Perbandingan yang lebih tepat adalah membandingkan Socket.io di node.js dengan Socket.io di Python. Meskipun ada satu implementasi utama server socket.io pada node, ada beberapa implementasi untuk Python:

(diambil dari wiki socket.io: https://github.com/learnboost/socket.io/wiki)

Anda bahkan dapat mengimplementasikan socket.io Anda sendiri dengan Python menggunakan Twisted jika Anda mau. Protokol socket.io didokumentasikan di sini: https://github.com/LearnBoost/socket.io-spec. Namun hal itu akan menggagalkan tujuan socket.io - ia mengabstraksikan detail tingkat rendah dari komunikasi web waktu nyata dan memungkinkan Anda berkonsentrasi pada penulisan logika bisnis Anda.

Di sisi klien Anda akan menerapkan skrip socket.io yang sama ke browser terlepas dari bahasa apa yang Anda putuskan untuk menulis server.

Mengenai bahasa mana yang harus dipilih: aturan praktis saya adalah pilih bahasa yang paling nyaman bagi Anda. Anda akan memiliki cukup banyak masalah dalam men-debug logika bisnis Anda. Jangan mempersulitnya dengan menggunakan bahasa asing.

Kedua bahasa tersebut sangat canggih (ya, bahkan node.js yang mengejutkan mengingat betapa mudanya bahasa tersebut). Python misalnya digunakan dalam produksi pada layanan dengan lalu lintas tinggi seperti Dropbox. Node saat ini digunakan pada layanan dengan lalu lintas tinggi seperti LinkedIn seluler.

person slebetman    schedule 31.10.2013
comment
Terima kasih @slebetman! Jawaban Anda telah memperjelas banyak hal bagi saya. - person IOS_DEV; 31.10.2013