2015-01-17 87 views
0

我得到「userid is nill」,並且在切換到另一個viewcontroller時發送消息不存儲。我想實現XMPP One to One聊天,我該怎麼做?IOS中的XMPP一對一聊天

我現在有完整的項目,但它是在筆尖文件;我的工作是將其轉換爲故事板。我幾乎完成了,但是我陷入了XMPP。

我必須使用哪些方法,以避免像「userid is nill」之類的錯誤。

+0

如果任何一個有代碼給我迫切如果有一個人能幫助我,我將所有的代碼發送給你 – Mahesh04

+0

我明白所有代碼都包含在項目中,但聊天前的消息不存儲在數據庫中時 – Mahesh04

回答

1

正如您在評論中提到的那樣,您使用的是ejabberd XMPP服務器。有一個模塊mod_logdb可以存儲聊天記錄到數據庫。

以下是配置示例,您可以看看如何配置mysql db以使用ejabberd。

{modules, [ 

    {mod_logdb, [ 
    {dbs, [ 
     {mysql5, [ 
     {user, "root"}, 
     {password, "pass"}, 
     {server, "serv"}, 
     {port, 3306}, 
     {db, "logdb"} 
     ]}, 
     {mnesia, []} 
    ]}, 
    {vhosts, [{"example1.org", mysql5}, {"example2.org", mnesia}{purge_older_days, 365}, 
    {dolog_default, true}, 
    {poll_users_settings, 5} ]}, 
    %% Other modules ... 
]}. 

它將存儲所有聊天記錄/日誌在配置文件中給出的,在那裏你可以讀取它作爲一個正常的MySQL查詢,並通過Web服務傳遞給您的應用程序數據庫。

參考鏈接:

  1. mod_logdb
  2. Configuration guide
+0

這適用於IOS Wright – Mahesh04

+0

Dude,這應該在您的服務器上進行配置,您的服務器上安裝了XMPP(Linux或Windows服務器)。在iOS中無所事事,你只需要使用一個web服務,例如'get_chat_log.php'(無論你喜歡哪種服務器語言),它將從MySQL數據庫讀取聊天日誌並以JSON/XML格式輸出到你的iOS應用程序。然後,您可以將這些聊天消息填充到應用程序的聊天屏幕上。希望它清楚。 –

+0

@ Mahesh04如果配置服務器不在您的手上,您可能只需要服務器人員安裝上述模塊並要求他們對其進行配置。它非常簡單。 –