Erlang Ejabberd捕获客户端断开连接

Erlang Ejabberd捕获客户端断开连接,erlang,ejabberd,exmpp,Erlang,Ejabberd,Exmpp,我运行用erlang/exmpp编写的ejabberd和bot。我连接到这个机器人上一些叽叽喳喳的客户端。如何捕捉客户端断开连接?你所说的捕捉是什么意思? 对于调试,在ejabberd_sm中添加?调试:关闭_会话。 用于通过ejabberd_c2s跟踪dbg:终止和相同的ejabberd_sm:关闭会话。 对于应用程序调用,订阅sm\u删除\u连接\u挂钩。 也许你可以实现自己的钩子并使用自定义钩子?你所说的捕获是什么意思? 对于调试,在ejabberd_sm中添加?调试:关闭_会话。 用于通

我运行用erlang/exmpp编写的ejabberd和bot。我连接到这个机器人上一些叽叽喳喳的客户端。如何捕捉客户端断开连接?

你所说的捕捉是什么意思? 对于调试,在ejabberd_sm中添加?调试:关闭_会话。 用于通过ejabberd_c2s跟踪dbg:终止和相同的ejabberd_sm:关闭会话。 对于应用程序调用,订阅sm\u删除\u连接\u挂钩。 也许你可以实现自己的钩子并使用自定义钩子?

你所说的捕获是什么意思? 对于调试,在ejabberd_sm中添加?调试:关闭_会话。 用于通过ejabberd_c2s跟踪dbg:终止和相同的ejabberd_sm:关闭会话。 对于应用程序调用,订阅sm\u删除\u连接\u挂钩。
可能实现您自己的钩子并使用自定义钩子?

我真的不知道我是否正确理解您,但如果您有能力让客户端向bot发送定向状态,当用户离线时,服务器将向bot发送断开连接的通知

您可以在中找到一些文档 这里有一点提取物

5.1.4。直接在场

用户可向另一实体(即,网络)发送定向存在 带有“to”属性的presence节,其值为 没有“类型”属性或“类型”属性的其他实体和 其值为“不可用”)。有三种可能的情况:

  • 如果用户将定向状态发送给不在 订阅类型为“from”或“both”的用户花名册 发送初始状态和发送不可用状态之前 广播时,用户的服务器必须路由或交付 对实体的存在节v(…);但是,如果有 用户从中发送定向状态的资源 不可用,用户的服务器必须广播该不可用 实体的状态(如果用户尚未发送指示 对该实体不可用)

  • 希望这有帮助。

    我真的不知道我是否理解您的意思,但是如果您有能力让客户端向bot发送定向状态,当用户离线时,服务器将向bot发送断开连接的通知

    您可以在中找到一些文档 这里有一点提取物

    5.1.4。直接在场

    用户可向另一实体(即,网络)发送定向存在 带有“to”属性的presence节,其值为 没有“类型”属性或“类型”属性的其他实体和 其值为“不可用”)。有三种可能的情况:

  • 如果用户将定向状态发送给不在 订阅类型为“from”或“both”的用户花名册 发送初始状态和发送不可用状态之前 广播时,用户的服务器必须路由或交付 对实体的存在节v(…);但是,如果有 用户从中发送定向状态的资源 不可用,用户的服务器必须广播该不可用 实体的状态(如果用户尚未发送指示 对该实体不可用)

  • 希望有帮助。

    我想你是在检查用户何时关闭c2s连接,而不是检查用户何时发送脱机节,你可以为此编辑和自定义ejabberd_c2s.erl。在ejabber_c2s内部,处理断开连接的功能是terminate/3(第1425行),您可以很容易地找到客户端的jabber id。

    我认为您正在尝试检查用户何时关闭c2s连接,而不是检查用户何时发送脱机节,为此,您可以编辑和自定义ejabber_c2s.erl。在ejabber_c2s内部,处理断开连接的功能是terminate/3(第#1425行),您可以很容易地找到客户端的jabber id。

    客户端向bot发送消息,bot向客户端发送消息,然后客户端脱机,我怎样才能抓住这一刻并知道哪个客户端JID将脱机?客户端向bot发送消息,bot向客户端发送消息,然后客户端将脱机,我怎样才能抓住这一刻并知道哪个客户端JID将脱机?