예제 #1
0
파일: run.py 프로젝트: hackEns/Disty
        while True:
            wlist = []

            if cqueue or c_pend: wlist.append(self.request)
            ins, outs, excepts = select.select(rlist, wlist, [], 1)
            if excepts: raise Exception("Socket exception")

            if self.request in outs:
                # Send queued target data to the client
                c_pend = self.send_frames(cqueue)
                cqueue = []

            if self.request in ins:
                # Receive client data, decode it, and send it back
                frames, closed = self.recv_frames()
                print("Received: " + frames[0].decode('utf-8'))
                sendUDP("localhost", 4242, frames[0].decode('utf-8'))

                if closed:
                    self.send_close()


if __name__ == '__main__':
    opts = {"listen_port": 80, "web": "."}

    try:
        server = WebSocketServer(WebSocketEcho, **opts)
        server.start_server()
    except:
        pass
예제 #2
0
#!/usr/bin/env python

import asyncore
from websocket import WebSocketServer


class BroadcastHandler(object):
    """
    The BroadcastHandler repeats incoming strings to every connected
    WebSocket.
    """
    def __init__(self, conn):
        self.conn = conn

    def dispatch(self, data):
        for session in self.conn.server.sessions:
            session.send(data)


if __name__ == "__main__":
    print "Starting WebSocket broadcast server - ws://localhost:8181/broadcast"
    WebSocketServer(port=8181, handlers={"/broadcast": BroadcastHandler})
    asyncore.loop()