【发布时间】:2023-04-08 04:08:01
【问题描述】:
我有一个用 Erlang 编写的简单应用服务器,它使用 XMPP 发送下游消息。客户端应用程序应为 Android 设备。我的 Erlang 模块实现了gen_server 行为;在init 上,它使用 XMPP 连接到 GCM 连接服务器 (CCS),
它有一个导出函数来发送下游消息。
问题是当我尝试发送消息时 SSL 套接字被关闭。如果我不发送任何消息,套接字将在 20 秒内关闭。
身份验证成功完成,我收到<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/> 响应。发送消息后没有 ACK 消息,套接字立即关闭。
代码可用here。这是一个使用 rebar3 的 Erlang 项目。
我在这里缺少什么?为什么我的套接字连接被关闭了?
【问题讨论】:
-
我不确定在init函数中打开socket是否可以。通常,主管启动所有
gen_servers的时间有限。看看他们在这个例子中是如何做到的:github.com/erlware/Erlang-and-OTP-in-Action-Source/blob/master/…
标签: android sockets erlang google-cloud-messaging