2016-05-04 27 views
0

Googleでは、XMPP(Extensible Messaging and Presence Protocol)を使用してGCM通知を送信するためのPython code sampleを提供しています。このガイドでは、「import xmpp」がどこに由来しているかについて特に言及していません。しかしこれはxmpppyと密接に関連しています。Python XMPPによるGCM通知

残念ながら、このxmpppyプロジェクトは長年前に放棄されたようです。前回のリリースには、OpenSSL

Traceback (most recent call last): 
    File "google_ccs.py", line 54, in <module> 
    client.connect(server=(SERVER,PORT), secure=1, use_srv=False) 
    File "/usr/local/virtualenv-django18/local/lib/python2.7/site-packages/xmpp/client.py", line 200, in connect 
    if not CommonClient.connect(self,server,proxy,secure,use_srv) or secure<>None and not secure: return self.connected 
    File "/usr/local/virtualenv-django18/local/lib/python2.7/site-packages/xmpp/client.py", line 178, in connect 
    transports.TLS().PlugIn(self,now=1) 
    File "/usr/local/virtualenv-django18/local/lib/python2.7/site-packages/xmpp/transports.py", line 281, in PlugIn 
    if now: return self._startSSL() 
    File "/usr/local/virtualenv-django18/local/lib/python2.7/site-packages/xmpp/transports.py", line 316, in _startSSL 
    tcpsock._sslIssuer = tcpsock._sslObj.issuer() 
AttributeError: '_ssl._SSLSocket' object has no attribute 'issuer' 

の現在のバージョンとの互換性の問題があることを2009年にも不思議ではなかったこの特定のスタックトレースは、Amazon Linuxの(2015年9月リリース)にありました。 openssl-1.0.1k-14.89.amzn1.x86_64。他のディストリビューションでも見ることができます。実際、xmpppyを依存関係とする他のプロジェクトでは、ほぼ同じスタックトレースを見ることができます。どのようにこれを解決することができますか?

+0

https://github.com/winster/xmppgcmを確認してください – Winster

答えて

2

最初の解決策はパッチxmpp/transports.pyで、パッチはfree-bsdから来ますが、linuxで動作します。

2番目の解決策は、この問題が発生していないfork of xmpppyに切り替えることです。次のようにインストールできます。

source /myvirtualenv/bin/activate/ 
pip uninstall xmpppy 
wget https://github.com/ArchipelProject/xmpppy/archive/master.zip 
tar -xvf master 
cd xmpppy-master 

python setup.py build 
python setup.py install 

ここでSSLエラーが消えてしまいます。 7年前ではなく、2年前に最後に更新されたコードを使用しているという知識に満足できます!このソリューションは、依存関係としてxmpppyを持つプロジェクトで、GCMにのみ限定されるものではありません。

両方の解決策がEventlet bug reportで発見されました。

更新: ピップを使用してフォークをインストールすることもできます。

pip install https://github.com/ArchipelProject/xmpppy/archive/master.zip 
関連する問題