อัปเดต tableview หากข้อมูลมีการเปลี่ยนแปลงทางออนไลน์

เรากำลังสร้างแอปสำหรับโรงแรมที่เราได้สร้างแอปที่สามารถสั่งซื้อผ่านแอปได้แล้ว คำสั่งซื้อทั้งหมดสามารถดูได้บนเว็บพอร์ทัลโดยการรีเฟรชหน้าเว็บ

ตอนนี้ลูกค้าขอให้สร้างแอปที่พนักงานเสิร์ฟสามารถดูคำสั่งซื้อบน iPad ของเขาได้

เพื่อที่เราจะได้มี tableview ที่จะแสดงรายการคำสั่งซื้อทั้งหมด

อย่างไรก็ตาม ฉันไม่เข้าใจว่าฉันจะรีเฟรชตาราง/เพิ่มข้อมูลอย่างไร หากมีการสั่งซื้อใหม่

กล่าวโดยสรุปคือเมื่อมีการสั่งซื้อ บริกรอินสแตนซ์เดียวกันควรได้รับการแจ้งเตือนและควรอัปเดตมุมมองตาราง

หมายเหตุ: iPad/ iPhone รับข้อมูลผ่านบริการเว็บ


ซึ่งสามารถทำได้โดยการเรียกบริการเว็บทุกๆ 1 นาทีหรือ 30 วินาที

แต่ฉันไม่อยากทำแบบนี้...

หากมีการเพิ่มสิ่งใหม่ webservice จะส่งข้อมูลนั้นและฉันจะเพิ่มข้อมูลนั้นใน tableview ของฉัน หมายความว่าบริการเว็บจะส่งผู้ฟังมาให้ฉันว่ามีการเพิ่มข้อมูลใหม่

ฉันจำเป็นต้องรู้ว่าฉันจะฟังผู้ฟังนี้ได้อย่างไรหากบริการเว็บส่งผู้ฟังมาให้ฉัน

ข้อมูลที่เป็นประโยชน์เกี่ยวกับเรื่องนี้จะได้รับการชื่นชม

ลิงค์ด้านล่างช่วยฉันในเรื่อง TCP ใน iOS

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


person Fahim Parkar    schedule 09.02.2014    source แหล่งที่มา
comment
ตรวจสอบคำสั่งซื้อใหม่โดยใช้การเรียกบริการพื้นหลังไปยังเซิร์ฟเวอร์ หากวางไว้ ให้รีโหลดข้อมูล tableview ด้วยข้อมูลใหม่   -  person Velmurugan S    schedule 09.02.2014
comment
@VelmuruganS: คุณกำลังบอกว่าอีก 30 วินาทีฉันจะเรียกคำสั่งซื้อใหม่ต่อไปใช่ไหม   -  person Fahim Parkar    schedule 09.02.2014
comment
ใช่ เพื่อให้มีเพียงเราเท่านั้นที่สามารถตรวจสอบคำสั่งซื้อใหม่ได้   -  person Velmurugan S    schedule 09.02.2014
comment
@VelmuruganS : ตรวจสอบคำถามที่อัปเดตของฉัน ... ฉันรู้ว่าเราสามารถทำเช่นนี้ได้ แต่ฉันไม่ต้องการไปทางนั้นเนื่องจากมีความล่าช้า 30 วินาทีหรือน้อยกว่า;)   -  person Fahim Parkar    schedule 09.02.2014
comment
@ Fahim Parkar: การรวมกันแบบยาวอยู่ใน ajax และ php เพื่อสร้างการเชื่อมต่อเป็นเวลานาน เมื่อเซิร์ฟเวอร์ได้รับข้อมูลใหม่ จากนั้นจะส่งกลับไปยังไคลเอ็นต์ Ajax จะฟังการตอบสนองนั้นและอัปเดตใน UI ฉันไม่รู้วิธีที่จะประสบความสำเร็จใน iOS หากคุณมีวิธีแก้ไข โปรดอัปเดต ans.tk   -  person Velmurugan S    schedule 09.02.2014
comment
@VelmuruganS: สำหรับแอปบนเว็บ ajax เป็นทางออกที่ดีที่สุด ... ฉันเห็นด้วย... สำหรับ iOS ฉันกำลังมองหาบางอย่างเช่น funda ...   -  person Fahim Parkar    schedule 09.02.2014
comment
แล้วการแจ้งเตือนแบบพุชล่ะ? บริการเว็บแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงผ่านการพุช และไคลเอนต์อัปเดตตาราง (ขอคำสั่งซื้อใหม่) เพื่อตอบสนองต่อการแจ้งเตือนนี้ ดูเอกสาร developer.apple.com/library/ios/documentation/   -  person vokilam    schedule 09.02.2014
comment
@vokilam: ฉันอ่านมาว่า ไม่รับประกันการผลักดัน ดูลิงก์นี้โดย Apple   -  person Fahim Parkar    schedule 09.02.2014
comment
นั่นเป็นเรื่องจริง แต่คุณสามารถรวมการแจ้งเตือนแบบพุชเข้ากับการสำรวจบริการเว็บที่ความถี่น้อยกว่าได้ (แน่นอน) อีกวิธีหนึ่งคือการรักษาการเชื่อมต่อ TCP แบบเปิดไว้ (มันจะทำงานในพื้นหลังหรือไม่)   -  person vokilam    schedule 09.02.2014
comment
@vokilam: ฉันกำลังวางแผนที่จะใช้ TCP แต่ข้อกังวลก็คือเมื่อการเชื่อมต่ออินเทอร์เน็ตพัง แล้วไงล่ะ? กำลังพยายามค้นหาตัวอย่างการสอนสำหรับ TCP เพื่อทำงานนี้...   -  person Fahim Parkar    schedule 09.02.2014
comment
@FahimParkar การเปิดซ็อกเก็ตไว้อาจทำให้แบตเตอรี่และหน่วยความร้อน (โทรศัพท์) หมด ดันไม่น่าเชื่อถือ ฉันขอแนะนำอย่างยิ่งให้อัปเดตทุกครั้งที่พนักงานเสิร์ฟขอข้อมูลเกี่ยวกับตารางใดโต๊ะหนึ่ง แทนที่จะทำงานเหมือน WhatsApp (พุช) ให้ทำงานเหมือนอีเมลตามต้องการ การใช้ซ็อกเก็ตเพื่อเข้าถึงฐานข้อมูลไม่ควรใช้เวลานานเกินไปภายใต้สถานการณ์ปกติ และอาจรับประกันข้อมูลที่ทันสมัยที่สุด   -  person tony gil    schedule 10.02.2014


คำตอบ (1)


คุณสามารถปรับใช้โดยใช้แนวทางไคลเอนต์-เซิร์ฟเวอร์ที่ใช้ TCP โดยที่ iPad เป็นไคลเอนต์

  1. ไคลเอนต์ iPad เชื่อมต่อกับเซิร์ฟเวอร์โดยใช้การตรวจสอบสิทธิ์ เพื่อให้คุณทราบว่าพนักงานเสิร์ฟคนไหนกำลังใช้ iPad
  2. TCP ใช้การสื่อสารแบบดูเพล็กซ์บนซ็อกเก็ต TCP เพื่อให้ทั้งสองฝ่ายสามารถส่งข้อความถึงอีกฝ่ายได้
  3. หากเซิร์ฟเวอร์มีสิ่งของที่จะมอบให้กับ iPad/ลูกค้า/บริกร ก็เพียงแค่ส่งไปให้พวกเขา
  4. หากลูกค้าต้องการส่งข้อความไปยังเซิร์ฟเวอร์ เช่น "ฉันกำลังหยุดพัก" หรืออะไรก็ตาม ลูกค้าก็แค่ส่งข้อความไปยังเซิร์ฟเวอร์
  5. ช่วงของข้อมูลที่คุณสามารถแบ่งปันระหว่างไคลเอนต์และเซิร์ฟเวอร์นั้นไม่จำกัดจริงๆ
  6. ไม่มี 6.

ซึ่งจำเป็นต้องเขียนเซิร์ฟเวอร์ด้วยเช่นกัน ดังนั้นโซลูชันนี้จึงเป็นมากกว่าการพัฒนา iOS อย่างไรก็ตามบริการเว็บจะต้องมีการพัฒนาที่คล้ายกันอยู่แล้ว

person trojanfoe    schedule 09.02.2014
comment
ฉันมีระบบเข้าสู่ระบบเพื่อเชื่อมต่อกับแอป ดังนั้นเมื่อใช้รหัสเข้าสู่ระบบ ฉันรู้ว่า iPad เครื่องไหนเป็นบริกรคนไหน... โดยใช้บริการเว็บ ฉันสามารถส่งข้อมูลได้ แต่ฉันต้องการให้ iPad ฟังโดยอัตโนมัติ (แทนที่จะเขียน NSURL Connect เพื่ออ่าน) .. ความกังวลหลักของฉันคือการฟังข้อมูลจากเซิร์ฟเวอร์โดย iPad โดยผู้ฟังบางคน... - person Fahim Parkar; 09.02.2014
comment
@FahimParkar ตกลง ฉันยกเลิกการลบคำตอบแล้ว ฉันคิดว่ามันอ่อนแอนิดหน่อยอยู่แล้ว สิ่งที่ฉันแนะนำคือใช้การสื่อสารระดับ TCP ไม่ใช่ HTTP/JSON/XML/อะไรก็ตาม ฉันอยากจะแนะนำวิธีการแบบอะซิงโครนัสเช่นกัน เท่าที่เกี่ยวข้องกับตัวอย่างคือมีข้อมูลมากมายเกี่ยวกับวิธีการใช้ซ็อกเก็ต TCP ในลักษณะนี้บนอินเทอร์เน็ตซึ่งมีมาตั้งแต่อินเทอร์เน็ตเริ่มต้น... - person trojanfoe; 09.02.2014