Ich versuche, eine Push-Benachrichtigung an APNs mit Erlang zu senden. Dies ist der Code, den ich mit so weit kam:Wie sende ich eine Push-Benachrichtigung mit Erlang?
-module(apnstest2).
-export([connect/0]).
connect() ->
application:start(ssl),
ssl:seed("someseedstring"),
Address = "gateway.sandbox.push.apple.com",
Port = 2195,
Cert = "/path/to/Certificate.pem",
Key = "/path/to/Key.unenc.pem",
Options = [{certfile, Cert}, {keyfile, Key}, {mode, binary}],
Timeout = 1000,
{ok, Socket} = ssl:connect(Address, Port, Options, Timeout),
Token = "195ec05a962b24954693c0b638b6216579a0d1d74b3e1c6f534c6f8fd0d50d03",
Payload = "{\"aps\":{\"alert\":\"Just testing.\",\"sound\":\"chime\", \"badge\":10}}",
TokenLength = length(Token),
PayloadLength = length(Payload),
Packet = [<<0:8, TokenLength, Token, PayloadLength, Payload>>],
ssl:send(Socket, list_to_binary(Packet)),
ssl:close(Socket).
Der Code nicht den Vorteil von Erlang Gleichzeitigkeit dauert aber nur ein Prototyp. Ich möchte nur testen, ob ich den Push auf die einfachste Art und Weise senden kann.
Ich denke, das Problem besteht darin, dass das Paket an die APNs gesendet wird. Dies ist das Binärformat einer Push-Benachrichtigung:
Wie soll ich ein solches Paket in Erlang erstellen? Könnte jemand bitte meinen Code ansehen und mir sagen, wo das Problem liegt?
Auch ich verwendete Erlangs SSL-Anwendung, um die Verbindung zu erstellen und die Daten zu senden, und ich weiß nicht, ob das das Problem oder das Paket ist.
Danke!