2017-08-17 64 views
1

我在Php/Ratchet有一個可用的聊天服務器。我在Swift中使用Starscream作爲我的客戶端。我成功地在用戶之間創建了一個聊天,但是這隻有在我的應用程序打開時才起作用,因爲這是套接字打開的時候。即使我的應用程序未啓用,如何讓我的應用程序接收消息。所以基本上有一種方法可以保持套接字的打開。我在某個地方看到它被Apple禁止。在Swift中保持套接字在聊天應用程序中打開

回答

1

聽起來就像你從你的客戶端發送消息到你的手機。您需要將消息發送到服務器,服務器將它們發送到您的手機。

如果服務器無法成功將消息發送到您的手機,應存儲該消息,並應在手機可用時將存儲的消息發送到手機。

有這樣的事情的消息排隊系統。參見例如RabbitMQ。還有一些其他人可能會在你的技術堆棧上更好地工作。做一些研究。

在這裏,客戶端與服務器通話,服務器與RabbitMQ或任何您選擇使用的服務器連接,RabbitMQ跟蹤排隊的消息,當手機聯機時,RabbitMQ將排隊的消息發送到服務器和服務器將它們發送到手機。

PS Google「消息隊列PHP」。

2

系統在某個時候很有可能會關閉您的進程,因此我不會依賴該應用在後臺處於活動狀態。

  1. 嘗試提出解決方案,當客戶端變爲在線時接收過去的消息。
  2. 閱讀關於Apple Push Notification Service在應用程序不活動時通知您的用戶有關消息。
+0

感謝您的快速響應。我正在考慮將所有郵件存儲在我的數據庫中,並在應用程序打開時將它們與用戶本地存儲同步。這會工作嗎? @Misha Karpenko –

+0

是的,我認爲這是一個合理的計劃。 –

相關問題