Bu projeyi buldum: Bir WebSocket sunucusu için http://code.google.com/p/standalonewebsocketserver/ , ancak python'da bir WebSocket istemcisi uygulamam gerekiyor, daha doğrusu WebSocket sunucumda XMPP'den bazı komutlar almam gerekiyor.
Bu projeyi buldum: Bir WebSocket sunucusu için http://code.google.com/p/standalonewebsocketserver/ , ancak python'da bir WebSocket istemcisi uygulamam gerekiyor, daha doğrusu WebSocket sunucumda XMPP'den bazı komutlar almam gerekiyor.
Yanıtlar:
http://pypi.python.org/pypi/websocket-client/
Kullanımı gülünç derecede kolay.
sudo pip install websocket-client
Örnek müşteri kodu:
#!/usr/bin/python
from websocket import create_connection
ws = create_connection("ws://localhost:8080/websocket")
print "Sending 'Hello, World'..."
ws.send("Hello, World")
print "Sent"
print "Receiving..."
result = ws.recv()
print "Received '%s'" % result
ws.close()
Örnek sunucu kodu:
#!/usr/bin/python
import websocket
import thread
import time
def on_message(ws, message):
print message
def on_error(ws, error):
print error
def on_close(ws):
print "### closed ###"
def on_open(ws):
def run(*args):
for i in range(30000):
time.sleep(1)
ws.send("Hello %d" % i)
time.sleep(1)
ws.close()
print "thread terminating..."
thread.start_new_thread(run, ())
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://echo.websocket.org/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
pip install
, pencerelerde iyi çalışıyor! ActivePython 2.7 kullanıyorum ve çalıştırdım pip install websocket-client
ve işe yaradı. Tek sorun python
cygwin python ile /cygdrive/C/Python27/python
sudo
. Kullanın --user
.
Autobahn, Python için iyi bir websocket istemci uygulamasına ve bazı iyi örneklere sahiptir. Aşağıdakileri bir Tornado WebSocket sunucusu ile test ettim ve işe yaradı.
from twisted.internet import reactor
from autobahn.websocket import WebSocketClientFactory, WebSocketClientProtocol, connectWS
class EchoClientProtocol(WebSocketClientProtocol):
def sendHello(self):
self.sendMessage("Hello, world!")
def onOpen(self):
self.sendHello()
def onMessage(self, msg, binary):
print "Got echo: " + msg
reactor.callLater(1, self.sendHello)
if __name__ == '__main__':
factory = WebSocketClientFactory("ws://localhost:9000")
factory.protocol = EchoClientProtocol
connectWS(factory)
reactor.run()
from autobahn.twisted.websocket import WebSocketClientFactory, WebSocketClientProtocol, connectWS
otobanın daha yeni sürümleri için doğru içe aktarmadır. stackoverflow.com/questions/21381454/…
Son zamanlarda bu alanda biraz araştırma yaptığım için (Ocak '12), en umut verici müşteri aslında: Python için WebSocket . Bu şekilde arayabileceğiniz normal bir soketi destekler:
ws = EchoClient('http://localhost:9000/ws')
client
Olabilir Threaded
dayalı veya IOLoop
gelen Tornado projesi. Bu, çoklu eşzamanlı bağlantı istemcisi oluşturmanıza izin verecektir. Stres testleri yapmak istiyorsanız kullanışlıdır.
İstemci ayrıca onmessage
, opened
ve closed
yöntemlerini de ortaya çıkarır . (WebSocket stili).
web2py'de comet_messaging.py vardır ve web soketleri için Tornado'yu kullanır, burada bir örneğe bakın: http://vimeo.com/18399381 ve burada vimeo. com / 18232653