perbarui tampilan tabel jika data diubah secara online

Kami membuat aplikasi untuk hotel di mana kami telah membuat aplikasi di mana pemesanan dapat dilakukan melalui aplikasi. Semua pesanan tersebut dapat dilihat di portal web dengan menyegarkan halaman.

Sekarang klien diminta untuk membuat aplikasi dimana pelayan dapat melihat pesanan di iPad-nya.

Untuk itu kita akan memiliki tampilan tabel dimana semua daftar pesanan akan ditampilkan.

Namun saya tidak mengerti bagaimana cara menyegarkan tabel/menambahkan data jika pesanan baru dibuat.

Singkatnya setelah pesanan dibuat, pada saat yang sama pelayan harus mendapat peringatan dan tampilan meja harus diperbarui.

Catatan: iPad/iPhone mendapatkan data melalui layanan web.


Hal ini dapat dicapai dengan memanggil layanan web setiap 1 menit atau 30 detik.

Namun saya tidak ingin melakukan hal ini...

Jika ada hal baru yang ditambahkan, layanan web akan mengirimkan data itu dan saya akan menambahkan data itu di tampilan tabel saya. Berarti layanan web akan mengirimi saya pendengar bahwa data baru ditambahkan

Saya perlu tahu bagaimana saya bisa mendengarkan pendengar ini jika layanan web mengirimi saya pendengar.

Setiap info berguna tentang ini akan dihargai.

Tautan di bawah ini membantu saya untuk TCP di iOS.

http://www.tekritisoftware.com/sites/default/files/Socket_Programing_for_IOS.pdf


person Fahim Parkar    schedule 09.02.2014    source sumber
comment
Periksa pesanan baru dilakukan menggunakan panggilan layanan latar belakang ke server. Jika ditempatkan, muat ulang data tampilan tabel dengan data baru.   -  person Velmurugan S    schedule 09.02.2014
comment
@VelmuruganS : jadi maksudmu alternatif 30 detik aku akan terus menelepon untuk pesanan baru?   -  person Fahim Parkar    schedule 09.02.2014
comment
ya, Supaya hanya kami yang bisa mengecek pesanan baru.   -  person Velmurugan S    schedule 09.02.2014
comment
@VelmuruganS: periksa pertanyaan saya yang diperbarui... Saya tahu kita bisa melakukan cara ini, namun saya tidak ingin melakukannya karena ada penundaan 30 detik atau kurang;)   -  person Fahim Parkar    schedule 09.02.2014
comment
@ Fahim Parkar: pengumpulan panjang ada di ajax dan php untuk membuat koneksi lama, setelah server menerima data baru, maka data itu akan dikirim kembali ke klien. Ajax akan mendengarkan respons itu dan memperbarui di ui. Saya tidak tahu bagaimana mencapainya di ios. Jika Anda mendapatkan solusinya, harap perbarui ans.tk.   -  person Velmurugan S    schedule 09.02.2014
comment
@VelmuruganS : untuk aplikasi berbasis web, ajax adalah solusi terbaik... Saya setuju... untuk iOS saya mencari sesuatu seperti itu funda...   -  person Fahim Parkar    schedule 09.02.2014
comment
Bagaimana dengan pemberitahuan push? Layanan web memberi tahu tentang perubahan melalui push, dan klien memperbarui tabel (meminta pesanan baru) sebagai respons terhadap pemberitahuan ini. Lihat dokumen developer.apple.com/library/ios/documentation/   -  person vokilam    schedule 09.02.2014
comment
@vokilam : Saya membaca di suatu tempat push tidak dijamin. Lihat tautan ini dari Apple   -  person Fahim Parkar    schedule 09.02.2014
comment
Itu benar, tetapi Anda dapat menggabungkan pemberitahuan push dengan polling layanan web yang lebih jarang (pastinya). Cara lain adalah dengan menjaga koneksi TCP tetap terbuka (apakah akan berfungsi di latar belakang?).   -  person vokilam    schedule 09.02.2014
comment
@vokilam : Saya berencana menggunakan TCP, tapi kekhawatirannya adalah ketika koneksi Internet terputus lalu bagaimana? Mencoba mencari contoh tuts untuk TCP untuk melakukan tugas ini...   -  person Fahim Parkar    schedule 09.02.2014
comment
@FahimParkar membiarkan soket tetap terbuka dapat menguras baterai dan unit pemanas (ponsel). dorongan tidak dapat diandalkan. saya sangat menyarankan agar pembaruan dilakukan setiap kali pelayan meminta info di meja tertentu. alih-alih bekerja seperti WhatsApp (mendorong), bekerja seperti email sesuai permintaan. Menggunakan soket untuk mengakses database tidak akan memakan waktu terlalu lama, dalam keadaan normal dan mungkin akan menjamin sebagian besar data terkini.   -  person tony gil    schedule 10.02.2014


Jawaban (1)


Anda dapat mengimplementasikannya menggunakan pendekatan klien-server berbasis TCP, di mana iPad adalah kliennya.

  1. Klien iPad terhubung ke server menggunakan otentikasi sehingga Anda mengetahui pelayan mana yang menggunakan iPad.
  2. TCP menggunakan komunikasi dupleks melalui soket TCP sehingga kedua belah pihak dapat mengirim pesan ke pihak lain.
  3. Jika server memiliki sesuatu untuk diberikan kepada iPad/klien/pelayan maka server cukup mengirimkannya kepada mereka.
  4. Jika klien ingin mengirim pesan ke server, seperti "Saya sedang istirahat", atau apa pun, maka klien cukup mengirimkannya ke server.
  5. Kisaran informasi yang dapat Anda bagikan antara klien dan server sebenarnya tidak terbatas.
  6. Tidak ada 6.

Ini memerlukan server untuk ditulis juga, jadi solusi ini lebih dari sekedar pengembangan iOS. Namun layanan web tetap memerlukan pengembangan serupa.

person trojanfoe    schedule 09.02.2014
comment
Saya memiliki sistem login untuk terhubung ke aplikasi, jadi menggunakan id login, saya tahu iPad mana yang merupakan pelayan... menggunakan layanan web saya dapat mengirim data namun saya ingin iPad mendengarkan secara otomatis (daripada saya menulis NSURL Connect untuk membacanya). .. perhatian utama saya adalah mendengarkan data dari server melalui iPad oleh BEBERAPA PENDENGAR... - person Fahim Parkar; 09.02.2014
comment
@FahimParkar Oke, saya telah membatalkan penghapusan jawaban saya. Menurutku itu agak lemah. Yang saya sarankan hanyalah menggunakan komunikasi tingkat TCP, bukan HTTP/JSON/XML/apa pun. Saya juga menyarankan pendekatan asinkron. Sebagai contoh, ada banyak informasi tentang cara menggunakan soket TCP dengan cara ini di internet yang telah ada sejak internet dimulai... - person trojanfoe; 09.02.2014