Erlang 在添加新属性后,花名册上的进程订阅变得混乱

Erlang 在添加新属性后,花名册上的进程订阅变得混乱,erlang,xmpp,ejabberd,instant-messaging,Erlang,Xmpp,Ejabberd,Instant Messaging,在向mod_花名册_odbc.erl添加新属性后,订阅过程中出现问题 这显然需要我修改表rosterusers,为记录添加一个新列,并在该模块的odbc_查询中添加查询get_-rosters。然后在mod_花名册_odbc模块中,我必须扩展诸如process_iq get And sets方法等方法,以及诸如record_to_string、raw_to_record、process_item_attrs和get_subscription_List等其他方法,并在设置花名册的每个元素时对要初始

在向mod_花名册_odbc.erl添加新属性后,订阅过程中出现问题

这显然需要我修改表rosterusers,为记录添加一个新列,并在该模块的odbc_查询中添加查询get_-rosters。然后在mod_花名册_odbc模块中,我必须扩展诸如process_iq get And sets方法等方法,以及诸如record_to_string、raw_to_record、process_item_attrs和get_subscription_List等其他方法,并在设置花名册的每个元素时对要初始化的新属性进行挂起查询

我已经测试了我的更改,设置了花名册中的每个元素,并将其正确保存到DB,访问花名册也是如此,新的属性/记录也按预期添加

现在,我的问题是我破坏了客户端的订阅部分。客户机逻辑订阅花名册中的每个元素,在此之前,我能够在两个在线联系人之间自动订阅。据我所知,用户A在其花名册中设置用户B并订阅,然后服务器将状态发送给用户B并发出此请求,以便用户B向用户A重新订阅,最后用户将两者都订阅。在我更改服务器后,不会发生这种情况

目前,用户A可以将用户B设置为其花名册,但它确实显示为脱机,我可以看到,花名册上没有订阅,基本上一个花名册上有另一个花名册,但他们无法在线订阅或看到对方。直到用户A向用户B发送消息,订阅才能得到处理,并且两者都已相互订阅


现在,我希望避免提供代码更改,因为我确实需要提示,以知道我可能在服务器端破坏了这种逻辑。哪一部分状态会因为这么小的更改而被破坏……

您是否尝试将数据库中的订阅设置为两者?是的,但我不想自己更改数据库,我希望mod_花名册_odbc自动订阅两者