gpt4 book ai didi

java - 苹果推送通知服务(APNS): Feedback Service Response has missing byte?

转载 作者:行者123 更新时间:2023-11-30 04:55:59 24 4
gpt4 key购买 nike

我正在用 Ruby 编写一个推送通知系统。使用增强界面发送通知工作正常,从反馈服务消费根本不起作用。

我自己编写了从套接字读取的代码,如下所示:

      context      = OpenSSL::SSL::SSLContext.new
context.cert = OpenSSL::X509::Certificate.new(File.read(pem_path))
context.key = OpenSSL::PKey::RSA.new(File.read(rsa_path))
@socket = TCPSocket.new(host, port)
@ssl = OpenSSL::SSL::SSLSocket.new(@socket, context)
@ssl.connect
@socket.gets #read(38) has the same effect FWIW

但是 APNS 反馈服务仅返回 37 个字节,而不是预期的 38 个字节,并且正如预期的那样,包困惑了。

我可以使用 Ruby APNS gem 复制该错误(并为他们开了一张票here)。

我已将从 APNS 反馈服务收到的所有内容保存到一个文件中,以下是我在尝试检查字节时得到的结果:

ruby-1.9.2-p290 :035 > while b = f.readbyte
ruby-1.9.2-p290 :036?> puts b
ruby-1.9.2-p290 :037?> end
21
3
1
0
32
23
35
236
232
217
53
172
143
54
130
39
157
247
205
233
231
245
140
111
104
199
214
159
60
107
169
175
42
172
57
31
160

如您所见,数组相差一,应该如下所示: APNS Feedback Format

有人遇到过类似的问题或者可以看到我做错了什么吗?

谢谢

编辑@19/2011:

这似乎是 Ruby 套接字的问题。使用java-apns lib以下 Clojure 核心返回相同应用程序、证书等的预期结果。

(def tokens (. (.. (APNS/newService) 
(withCert "/Users/pcalcado/blah.p12" "blah")
withProductionDestination
build)
getInactiveDevices))

我看不到任何特别的东西being done by java-apns或者我在 Ruby 中可能做错了什么。我不介意在这个系统中使用 Clojure,但现在除了反馈之外,我已经拥有了所有内容,并且已经在 MRI 上用 Ruby 编写并运行了 =/

最佳答案

我问自己...我们是否有可能必须从 @ssl 而不是 @socket 读取?抱歉,我对 Ruby 编程有点不懂:)

编辑:我确认你的问题是你需要从 SSL 套接字读取看看这个提交:https://github.com/muccy/APNS/commit/4d62a3f33c4b31f7f81a0020aa70871232f46781

关于java - 苹果推送通知服务(APNS): Feedback Service Response has missing byte?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com