1

向 mod_roster_odbc.erl 添加新属性后,订阅过程出现问题

这显然需要我更改表 rosterusers 为记录添加一个新列,以及该模块的 odbc_queries 中的查询 get_roster (s)。然后在模块 mod_roster_odbc 中,我必须扩展诸如 process_iq(get 和 set(s))方法和其他方法,例如 record_to_string、raw_to_record、process_item_attrs 和 get_subscription_lists,并在设置每个时对要初始化的新属性的挂起查询名册的元素

我已经测试了我对设置名册的每个元素并将其正确保存到数据库的更改,进入名册也是如此,并且新的属性/记录就像预期的那样添加。

现在,我的问题是我破坏了客户端的订阅部分。客户端逻辑订阅名册的每个元素,在此更改之前,我能够在两个在线联系人之间自动订阅。据我了解,用户 A 在其名册中设置用户 B 并订阅,然后服务器通过此请求向用户 B 发送存在,以便用户 B 订阅回用户 A,用户最终将它们订阅为 "Both"。这在我更改服务器后没有发生。

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

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

4

0 回答 0