4

現在、RubyのサーバーでAppleプッシュ通知を実行しています。スーパーバイザーを使って監視したいので、Erlangに入れてもらいたいです。誰かが私を助けることができるコードを持っていますか?

これが私のRubyコードです。この現在の実装について私が気に入らない点の1つは、接続が維持されていないように見えることです。1日に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を介して監視します。これのいずれかが可能かどうか誰かが知っていますか?

4

3 に答える 3

2

Erlang を使用した Apple プッシュ通知に関するこの質問も、この質問に役立つ可能性があります。

于 2009-11-19T18:11:59.413 に答える
0

Erlangに同梱されているHTTPクライアント(SSLサポート付き)はかなりうまく機能します(私はそれをバトルテストしたとは言えません)。関連するドキュメントはこちらから入手できます。

1)HTTP呼び出しを実行する前に、アプリケーションで「inets:start()」を実行することを忘れないでください。

2)私の(小さな)経験では、「inets」モジュールを開始するのは少し難しいようです。スーパーバイザーモジュール内で開始しようとしないでください。そうしないと、サーバーが機能しなくなります。私は通常、HTTPを必要とする他のサーバーよりも先に、アプリケーションの最初のサーバーモジュールで「inets:start()」を実行します。

3)「プッシュ」操作を実行するには、「ストリーム」オプションを使用する必要があると思います。

于 2009-09-14T02:20:07.073 に答える
0

apn_on_rails プロジェクトもチェックアウトしてください。

Erlang の実装を思いついたら、私たちと共有することを検討してください :)。

于 2009-10-09T18:11:55.400 に答える