2013-04-05 126 views
3

我想從PHP腳本發送APN(Apple推送通知)。我的PHP腳本工作正常,我在iPhone設備從本地主機發送時收到通知,以及但是當我上傳使用相同的.pem文件相同的腳本返回錯誤shared server ...蘋果推送通知不在共享服務器上工作

Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.push.apple.com:2195 (Connection refused) in /mypath/SendPushNotification.php on line 28 Failed to connect: 111 Connection refused 

從一些源我知道發送APN端口2195必須是開放的,這在共享服務器計劃中是不可能的。所以我嘗試使用專用服務器,它的工作完美,我收到設備上的通知。我努力尋找共享服務器的解決方案,但沒有找到任何解決方案。

我的問題:是否有可能發送APN而不從共享服務器打開端口2195?如果是提供一些指導。

+0

請檢查您的證書(.pem)或重新生成證書(.pem)並重試。 – Pratik 2013-04-05 06:25:31

+0

@Pratik它只是在本地機器上以及在專用服務器上完美工作,那麼它應該在共享服務器上有什麼問題? – 2013-04-05 06:26:29

+0

然後可能會在您的共享服務器的SSL端口 – Pratik 2013-04-05 06:29:25

回答

3

不,不可以不使用2195端口發送APN消息。

如果你想從共享服務器發送推送通知消息,請嘗試使用一些第三方工具,如http://urbanairship.com/

0

這是刺激性的,肯定port 2195問題。與您的託管服務提供商聊天,並要求他們打開該端口。我也有同樣的問題。我的本地代碼在​​和production等各種條件下運行平穩,但在服務器上出現故障。

不要弄不清楚.pem文件的路徑和對應的代碼,這將是簡單的。對我來說,我把我的certificates (.pem)在一個名爲證書目錄,並給了這樣的路徑:

$apnsCert = 'certs/cert_prod.pem'; 

的代碼是不是我的應用生產服務器上的工作。我在這上面浪費了一天半的時間,但是當我將它放在應用程序的臨時服務器上時,它在第一次運行時運行得非常好。原因!!!!肯定是port 2195問題。

所有的節拍。

1

前段時間我得到了同樣的錯誤,然後我發現它ocurres因爲服務器,代理阻止該端口,因爲大多數服務器不使用該端口作爲普通一(80或21 )。

在這種情況下,您可以嘗試尋求您的服務器經銷商的支持,他們可以爲您打開該端口(2195),如果您採取此解決方案,我建議還要求打開端口2196端口用於反饋。

另一種解決方案是使用免費的推送通知供應商,如解析這是很容易使用,並在您的應用程序實現,也可以使用UrbanAirship,但我preffer解析;)

希望它可以幫助