2016-05-23 205 views
0

我有一个使用XMPP发送下行消息的Erlang编写的简单应用服务器。预计客户端应用程序将是Android设备。我的Erlang模块实现gen_server行为;在init它使用XMPP连接到GCM连接服务器(CCS), 并且它有一个导出功能发送下游消息。使用XMPP关闭GCM连接服务器的套接字

问题是当我尝试发送消息时SSL套接字被关闭。如果我不发送任何消息,套接字将在20秒内关闭。

验证成功完成,我确实收到<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>响应。在发送消息时没有ACK消息,套接字立即关闭。代码here。这是一个使用rebar3的Erlang项目。

这里缺少什么?为什么我的套接字连接关闭?

+0

我不确定是否可以在init函数中打开套接字。通常,主管启动所有'gen_servers'的时间有限。看看他们在这个例子中是如何做到的:https://github.com/erlware/Erlang-and-OTP-in-Action-Source/blob/master/chapter_11/gen_web_server/src/gws_server.erl – Amiramix

回答

1

该问题通过认证后发送附加节来解决。查看问题链接在问题中提到的代码,以查看哪些节应互换以便能够发送通知。

GCM CCS docs缺少此信息,因此出现问题。