Skip to content

Instantly share code, notes, and snippets.

@bkad
Last active October 8, 2015 22:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bkad/6849ef11333d39d3143a to your computer and use it in GitHub Desktop.
Save bkad/6849ef11333d39d3143a to your computer and use it in GitHub Desktop.
Poller not recognizing there's new data to be read
from twisted.internet import reactor
from autobahn.websocket import WebSocketClientFactory,WebSocketClientProtocol, connectWS
class EchoClientProtocol(WebSocketClientProtocol):
def onOpen(self):
self.sendMessage("1", False)
self.sendMessage("2", False)
if __name__ == '__main__':
factory = WebSocketClientFactory("ws://localhost:8000/echo")
factory.protocol = EchoClientProtocol
connectWS(factory)
reactor.run()
from gevent import pywsgi
from geventwebsocket.handler import WebSocketHandler
from select import poll
import select
def websocket_app(environ, start_response):
if environ["PATH_INFO"] == "/echo":
ws = environ["wsgi.websocket"]
poller = poll()
fileno = ws.stream.handler.socket.fileno()
poller.register(fileno, select.POLLIN)
while True:
events = dict(poller.poll())
if fileno in events:
data = ws.receive()
print data
server = pywsgi.WSGIServer(("", 8000), websocket_app, handler_class=WebSocketHandler)
server.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment