在添加新属性Ejabberd之后,Roster上的流程订阅已经搞砸了

时间:2013-04-11 12:38:43

标签: erlang xmpp ejabberd instant-messaging

在向mod_roster_odbc.erl添加新属性后,我在订阅过程中遇到了问题

这显然要求我改变表的rosterusers为记录添加一个新列以及该模块的odbc_queries中的查询get_roster。然后在模块mod_roster_odbc中,我不得不扩展像process_iq(get和set(s))方法这样的方法,比如,record_to_string,raw_to_record,process_item_attrs,以及get_subscription_lists,以及在设置每个属性时要初始化的新属性的待定查询名册中的元素

我已经测试了我的更改,以便设置我的名单中的每个元素,并将其正确保存到DB,同样适用于获取名单,新的属性/记录也会像预期一样添加。

现在,我的问题是我打破了客户端的订阅部分。 客户端逻辑订阅了名单中的每个元素,在此更改之前,我能够在两个联系人之间自动订阅。据我了解,用户A在其名单中设置用户B并订阅然后服务器使用此请求向用户B发送状态,以便用户B订阅回用户A并且用户最终将他们订阅为“两者” 。我在服务器上进行更改后没有发生这种情况。

目前,用户A能够将用户B设置为其名单,但它确实显示为脱机状态,我可以看到来自名册用户的订阅是“无”,基本上一个人在名单上有另一个,但他们无法订阅或者在网上看到对方。直到用户A向用户B发送消息进行处理并且两者都相互订阅。

现在,我想避免提供我的代码更改,因为我确实要求提示知道我可能在服务器端打破了这个逻辑。如此微小的变化打破了存在的那一部分......

0 个答案:

没有答案