Erlang中的Apple推送通知(或Ruby中的改进?)

我目前在Ruby服务器上运行Apple推送通知。 我想让一个人去Erlang,因为我想用一个主管来监视它。 有没有人有他们可以帮助我的代码?

这是我的Ruby代码。 我不喜欢这个当前实现的一件事是它似乎没有保持连接 – 它每天断开连接2-3次,而且在我重新连接之后,第一次推送似乎不会通过:

context = OpenSSL::SSL::SSLContext.new context.cert = OpenSSL::X509::Certificate.new(File.read(cert)) context.key = OpenSSL::PKey::RSA.new(File.read(cert)) def connect_sockets(server, context) sock = TCPSocket.new(server, 2195) ssl = OpenSSL::SSL::SSLSocket.new(sock,context) ssl.connect return sock, ssl end sock, ssl = connect_sockets(server, context) # this is called to initially connect and also reconnect whenever disconnected. 

如果Erlang Push不可行,那么我不介意坚持我的Ruby,只要我可以保持我的连接活着,并且可能通过Erlang监督它。 有谁知道这是否可能?

关于使用Erlang的Apple推送通知的这个问题也可能对此有用。

与Erlang一起提供的HTTP客户端(具有SSL支持)工作得相当好(我不能说我已经对它进行了战斗测试)。 相关文档可在此处获得 。

1)在尝试进行HTTP调用之前,不要忘记在应用程序中执行“inets:start()”。

2)在我的(小)经验中,启动’inets’模块似乎有点棘手:不要尝试在您的管理程序模块中启动它,否则您的服务器将无法工作。 我通常在我的应用程序的第一个服务器模块中执行’inets:start()’,然后再需要任何其他需要HTTP的服务器。

3)为了执行’push’操作,我猜你需要使用’stream’选项。

您也可以查看apn_on_rails项目。

如果您想出Erlang实现,请考虑与我们分享:)。