您將如何測試沙箱中的APNS反饋服務?或換句話說,你如何強迫設備進入反饋?你如何測試推送通知反饋服務?
回答
如果您從設備中刪除您的應用程序,您只需嘗試向該設備發送單個通知,並且下次連接到反饋服務器時,它將返回該設備。直到您嘗試向該設備發送另一個通知時,它纔會再次返回設備。此外,如果您在與反饋服務器的連接之間向設備發送多個通知,則會針對每個拒絕的通知返回設備。
我意識到這個答案已被接受,但爲了做第一輪測試,而不必經常安裝&從我的手機/ ipod中刪除我的應用程序我創建了一個非常簡單的ruby腳本來充當反饋服務器。我將ruby APNS類配置爲連接到此服務器(localhost:2196)並從中讀取。我沒有初始化一個SSL連接,所以我只是使用了基本套接字。以下是我用來「託管」服務器的腳本。
#!/usr/bin/env ruby
require 'socket'
puts 'Opening server'
server = TCPServer.open(2196)
loop {
puts 'Waiting for connection'
client = server.accept
puts 'Connected preparing data'
data = [1, 2, 3, 4, 0, 32, ['d41c3767074f541814c2207b78f72e538569cb39eae60a8c4a8677549819e174']]
puts 'Data for delivery: ' + data.inspect
begin
data[6] = data[6].pack('H*')
data = data.pack('c6a*')
loop {
puts 'Writing Data'
client.write data
puts 'Sleeping for 5 seconds'
sleep 5
}
rescue
end
puts 'Done writing, closing'
client.close
}
該腳本將偵聽並且每隔5秒收到一次連接時向套接字寫入數據包。如果連接套接字關閉(例如,您終止了您的反饋過程),那麼此腳本將重置並等待新連接。
請記住,不要使用SSL連接的東西只是一個標準的紅寶石套接字。祝你好運!
c:\ telnet localhost 2196 - >工程。 c:\ telnet 127.0.0.1 2196 - >不起作用 奇數。爲什麼會這樣呢? 此外,Indy TcpClient給我一個拒絕的連接。 – 2017-06-21 13:10:29
@ T.S錯誤表示服務器未在127.0.0.1上進行偵聽。 'localhost'並不一定是指127.0.0.1,通過'gethostbyname()'或'getaddrinfo()'查詢查詢可以將其解析爲真正的本地IP地址,'telnet'會嘗試連接,直到成功。但是Indy將'localhost'視爲127.0.0.1,而不是試圖動態解析它。當Indy解析主機名時,它不會嘗試連接到所有報告的IP。這是一個待辦事項。 – 2017-06-21 16:33:07
通過替換此行來修復:「」server = TCPServer.open(「127.0.0.1」,2196)「」 – 2017-07-12 08:15:04
我認爲從最初一輪問題「是的,你怎麼會有東西出現在那裏?」實際上來自這樣一個事實,即他的測試沒有返回任何設備,即使他可能已經有了通知成功發送到iPhone/iPad,每當他查詢FB服務器時,什麼都不會回來,正是因爲該應用程序從未從設備中刪除,因此服務器同樣很樂意繼續回答「找到0個設備」(例如)因爲沒有設備無法接收通知。
因此,當應用程序從設備中刪除時,通知服務器將提供一個反饋,即最終將回應移除該應用程序的設備列表。
本地服務器的想法也不錯。
-Alex
==============
這裏是蘋果公司的建議,以保持至少一個推使應用討厭的副作用。以下是我對線程發佈的文檔的建議:
關於「反饋服務器問題」,有趣的是要注意兩種情況: 1)在生產模式下將應用部署到真實設備; 2)應用程序部署到開發設備,沙箱;
在1)提示離開最後一個應用程序(我期望它)是正確的,應該像描述的那樣工作;這裏沒有問題。
在2)上,必須確保最後一個應用程序也是一個開發應用程序。或者換句話說,爲了讓事情變得更簡單,有第二個「沙盒應用程序」,只有在那裏按「最後的人開關」。
我遇到的問題是,一旦我刪除了我的開發應用程序,即使設備上還有其他推送應用程序,沙盒反饋服務器上也沒有任何反應,但它們都是生產應用程序,因此它們會向生產反饋服務器「報告」(如果可以這樣說的話)。
您的應用程序的第二個副本(沙盒應用程序)就是我們想要的,所以它可以保持與沙盒服務器的持續連接...然後當您刪除「測試的應用程序」時,您的沙盒應用程序將有希望地報告給沙箱,你可以做你的實際測試。
希望這是正確的......將測試tonite。
我可以確認您確實需要使用沙盒服務器的設備上的第二個應用程序才能獲得關於您正在測試的應用程序的反饋。這可以簡單地作爲一個簡單的應用程序與行:[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert];在應用程序委託的didFinishLaunchingWithOptions方法中。 – DougC 2011-03-21 09:54:02
@DougC如何創建第二個應用程序。如果使用相同的證書來創建並更改應用程序的名稱,則第二個將替換第一個。可以給我一些關於它的建議。非常感謝你! – Judy 2013-01-21 07:34:55
蘋果在哪裏注意到這兩種情況?這是一個了不起的答案,但你從哪裏找到這個來源? – 2015-12-18 16:04:24
- 1. 你如何測試iphone推送通知反饋服務
- 2. PHP Apple推送通知反饋服務
- 3. 推送通知的反饋服務
- 4. 推送通知反饋服務
- 5. 測試蘋果推送通知服務
- 6. 蘋果推送通知反饋服務不起作用
- 7. Apple推送通知反饋服務 - 它檢查的頻率
- 8. Apple推送通知服務(APNS):反饋服務響應缺少字節?
- 9. 發送推送通知時如何從APN獲得反饋
- 10. 測試蘋果推送通知反饋信息 - 沒有任何項目接受
- 11. 如何測試生產推送通知
- 12. 蘋果推送通知服務器 - 反饋始終返回零元組
- 13. 帶PHP的套餐推送通知反饋服務 - 套接字錯誤
- 14. BB推送通知服務
- 15. 無Apple推送通知服務的推送通知?
- 16. 通知APNS反饋服務有關停用通知的設備?
- 17. 推送通知服務如解析?
- 18. 如何在沒有iPhone的情況下測試Apple推送通知服務?
- 19. 「推送通知」 - 反饋,卸載應用程序
- 20. 從Apple推送通知反饋中獲取信息
- 21. 在TestFlight上測試推送通知
- 22. 測試推送通知與生產apns
- 23. 蘋果推送通知服務 - 許多通知要發送
- 24. 服務器如何知道iPhone是否收到推送通知?
- 25. 反應原生推送通知,GCM服務器返回401
- 26. 如何發送fcm推送通知使用goalng fcm服務器
- 27. Swift:完美的服務器:如何發送推送通知?
- 28. WP7推送通知服務器設置
- 29. 蘋果推送通知服務費用
- 30. Iphone推送通知服務問題
在沙箱模式下不起作用。我從來沒有得到反饋... – jjxtra 2011-11-18 20:47:36
查看評論由DougC – 2012-03-26 07:59:31