Exemple #1
0
    def startService(self):

        factory = WebSocketServerFactory("ws://localhost:%d" % self.port,
                                         debug=self.debug)

        factory.protocol = EchoServerProtocol
        factory.setProtocolOptions(
            allowHixie76=True)  # needed if Hixie76 is to be supported

        # FIXME: Site.start/stopFactory should start/stop factories wrapped as Resources
        factory.startFactory()

        resource = WebSocketResource(factory)

        # we server static files under "/" ..
        webdir = os.path.abspath(
            pkg_resources.resource_filename("echows", "web"))
        root = File(webdir)

        # and our WebSocket server under "/ws"
        root.putChild("ws", resource)

        # both under one Twisted Web Site
        site = Site(root)
        site.protocol = HTTPChannelHixie76Aware  # needed if Hixie76 is to be supported

        self.site = site
        self.factory = factory

        self.listener = reactor.listenTCP(self.port, site)
Exemple #2
0
def main(curDir):
    class WhiteboardServerProtocol(WebSocketServerProtocol):
        def onConnect(self, connectionRequest):
            whiteboard.addClient(self)
            return None

        def onMessage(self, msg, binary):
            whiteboard.processMessage(self, msg)

    os.chdir(curDir)

    #log.startLogging(sys.stdout)
    debugWS = False
    debugWhiteboard = False
    whiteboard = WhiteboardServer(debugWhiteboard)

    factory = WebSocketServerFactory("ws://localhost:9000",
                                     debug=debugWS,
                                     debugCodePaths=debugWS)

    factory.protocol = WhiteboardServerProtocol
    #factory.setProtocolOptions(allowHixie76 = True)
    listenWS(factory)

    webdir = File(".")
    web = Site(webdir)
    reactor.listenTCP(8080, web)

    #threading.Thread(None, reactor.run, None).start()
    print "Starting websocket server"
    reactor.run()

    whiteboard.shutdown()
Exemple #3
0
    def startService(self):

        factory = WebSocketServerFactory("ws://127.0.0.1:%d" % self.port)
        factory.protocol = EchoServerProtocol

        # FIXME: Site.start/stopFactory should start/stop factories wrapped as Resources
        factory.startFactory()

        resource = WebSocketResource(factory)

        # we server static files under "/" ..
        webdir = os.path.abspath(pkg_resources.resource_filename("echows", "web"))
        root = File(webdir)

        # and our WebSocket server under "/ws" (note that Twisted uses
        # bytes for URIs)
        root.putChild(b"ws", resource)

        # both under one Twisted Web Site
        site = Site(root)

        self.site = site
        self.factory = factory

        self.listener = reactor.listenTCP(self.port, site)
Exemple #4
0
    def __init__(self):
        log.startLogging(sys.stdout)

        self.factory = WebSocketServerFactory("ws://localhost:9000",
                                              debug=False)
        self.factory.protocol = WebDisplay
        listenWS(self.factory)

        reactor.run()
Exemple #5
0
    def serve_wss(self):
        """Start a web socket server over SSL, used by the web UI to get notifications about updates."""
        import os
        from .events import SystemEvent
        from autobahn.websocket import WebSocketServerProtocol, WebSocketServerFactory
        from twisted.internet import reactor
        from twisted.internet.error import BindError

        # Start a web socket server if the web UI is enabled
        if not self._config['web-ui-enabled']:
            return

        if not self._config['wss-enabled']:
            return

        if not os.path.isfile(self._config['ssl-cert']):
            self._startup_event.log_critical("Unable to activate SSL: File does not exist: %s" % self._config['ssl-cert'])
            return

        from twisted.internet import ssl

        try:
            # Create a WebSocketClientHandler instance
            WebSocketClientHandler = WebSocketClientHandlerFactory(self._config, self._ws_clients, self._event_store, self._server_status)

            uri = u"ws://%s:%s" % (self._config['wss-host'], self._config['wss-port'])
            factory = WebSocketServerFactory(uri)
            factory.protocol = WebSocketClientHandler
            # factory.setProtocolOptions(maxConnections=2)

            # note to self: if using putChild, the child must be bytes...
            if self._config['ssl-key'] and self._config['ssl-cert']:
                contextFactory = ssl.DefaultOpenSSLContextFactory(privateKeyFileName=self._config['ssl-key'], certificateFileName=self._config['ssl-cert'])
            else:
                contextFactory = ssl.DefaultOpenSSLContextFactory(privateKeyFileName=self._config['ssl-cert'], certificateFileName=self._config['ssl-cert'])

            self._ws_server_port = reactor.listenSSL(self._config['wss-port'], factory, contextFactory)

            self._server_status['wss-uri'] = "wss://%s:%s" % (self._config['wss-host'], self._config['wss-port'])

            self._startup_event.log_info(u"Escutando conexões em %s" % self._server_status['wss-uri'])
            self._startup_event.ws_address = self._config['wss-host']
            self._startup_event.ws_port = self._config['wss-port']
            self._startup_event.set_ws_started(True)

            # Serve forever (until reactor.stop())
            reactor.run(installSignalHandlers=False)

        except BindError as e:
            self._startup_event.log_critical("Unable to start web socket server: %s" % e)

        except ImportError:
            self._startup_event.log_error("Unable to start web socket server due to missing dependency.")

        event = SystemEvent()
        self._event_store.register_action(event)
        event.log_info('WSS server did quit')
Exemple #6
0
def startServer():
    output = getoutput('ifconfig wlan0')
    if 'inet addr:' in output:
        print 'wlan0 already connected!'
        return

    factory = WebSocketServerFactory(u"ws://127.0.0.1:9000")
    factory.protocol = SetupWifiWebsocketProtocol
    reactor.listenTCP(9000, factory)

    reactor.run()
Exemple #7
0
	def run ( self ):
			log.startLogging(sys.stdout)

			factory = WebSocketServerFactory("ws://localhost:9000", debug = False)
			factory.protocol = PushServerProtocol
			listenWS(factory)
			
			reactor.run()
			
			
			
def main():
    """ Main method for the websocket server """
    # Uncomment these two to get log from twisted
    #import sys
    #log.startLogging(sys.stdout)
    # Create context factor with key and certificate

    # Start UDP server thread
    udp_server = ReceiveDataUDPServer()
    udp_server.start()

    # Start load monitor thread
    load_monitor = LoadMonitor()
    load_monitor.start()

    # Start the data sender thread
    data_sender = DataSender()
    data_sender.start()

    ####### SSL IMPLEMENTATION
    context_factory = ssl.DefaultOpenSSLContextFactory(
        '/home/kenni/certs/fysik.dtu.dk.key',
        '/home/kenni/certs/fysik.dtu.dk-NEW.crt'
    )
    # Form the webserver factory
    factory = WebSocketServerFactory("wss://localhost:9002", debug=True)
    # Set the handler
    factory.protocol = CinfWebSocketHandler
    # Listen for incoming WebSocket connections: wss://localhost:9002
    listenWS(factory, context_factory)
    ######## SSL IMPLEMENTATION END

    try:
        LOG.info('run reactor')
        reactor.run()  # pylint: disable=E1101
    except Exception as exception_:
        LOG.exception(exception_)
        raise exception_

    # Stop all three threads
    udp_server.stop()
    load_monitor.stop()
    data_sender.stop()

    LOG.info('main: Ended')
    #raw_input('All stopped. Press enter to exit')
    print('All stopped. Press enter to exit')
Exemple #9
0
    def serve_ws(self):
        """Start a web socket server, used by the web UI to get notifications about updates."""
        import os
        from .events import SystemEvent
        from autobahn.websocket import WebSocketServerProtocol, WebSocketServerFactory
        from twisted.internet import reactor
        from twisted.internet.error import BindError

        # Start a web socket server if the web UI is enabled
        if not self._config['web-ui-enabled']:
            return

        if not self._config['ws-enabled']:
            return

        try:
            # Create a WebSocketClientHandler instance
            WebSocketClientHandler = WebSocketClientHandlerFactory(self._config, self._ws_clients, self._event_store, self._server_status)

            uri = u"ws://%s:%s" % (self._config['ws-host'], self._config['ws-port'])
            factory = WebSocketServerFactory(uri)
            factory.protocol = WebSocketClientHandler
            # factory.setProtocolOptions(maxConnections=2)

            self._ws_server_port = reactor.listenTCP(self._config['ws-port'], factory)

            self._server_status['wss-uri'] = "ws://%s:%s" % (self._config['ws-host'], self._config['ws-port'])

            self._startup_event.log_info(u"Escutando conexões em %s" % self._server_status['wss-uri'])
            self._startup_event.ws_address = self._config['ws-host']
            self._startup_event.ws_port = self._config['ws-port']
            self._startup_event.set_ws_started(True)

            # Serve forever (until reactor.stop())
            reactor.run(installSignalHandlers=False)

        except BindError as e:
            self._startup_event.log_critical("Unable to start web socket server: %s" % e)

        except ImportError:
            self._startup_event.log_error("Unable to start web socket server due to missing dependency.")

        event = SystemEvent()
        self._event_store.register_action(event)
        event.log_info('WS server did quit')
def main():
	try:
		#initializing serial flashing etc utilities socket
		ServerFactory = BroadcastServerFactory

		factory = ServerFactory("ws://localhost:9000")
		# factory = WebSocketServerFactory("ws://localhost:9000", debug = False)
		factory.protocol = EchoServerProtocol
		listenWS(factory)

		factory2 = WebSocketServerFactory("ws://localhost:9001")
		factory2.protocol = WebSerialProtocol
		listenWS(factory2)

		reactor.run()
	except error.CannotListenError, e:
		print "Port is already used. Exiting..."
		os._exit(0)
def main():
    """ Main method for the websocket server """
    LOG.info('main: Start')
    global LIVESOCKET  # pylint: disable=global-statement
    names = ['wss_hosts_defined', 'wss_hosts', 'wss_clients']
    LIVESOCKET = LiveSocket('websocketserver', names, sane_interval=1.0)
    LIVESOCKET.start()

    udp_steward = UDPConnectionSteward()
    udp_steward.start()

    # Uncomment these two to get log from twisted
    #import sys
    #log.startLogging(sys.stdout)
    # Create context factor with key and certificate
    context_factory = ssl.DefaultOpenSSLContextFactory(
        '/home/kenni/certs/fysik.dtu.dk.key',
        '/home/kenni/certs/fysik.dtu.dk-NEW.crt'
    )
    # Form the webserver factory
    factory = WebSocketServerFactory("wss://localhost:9001", debug=True)
    # Set the handler
    factory.protocol = CinfWebSocketHandler
    # Listen for incoming WebSocket connections: wss://localhost:9001
    listenWS(factory, context_factory)

    try:
        reactor.run()  # pylint: disable=E1101
        time.sleep(1)
        LOG.info('main: Keyboard interrupt, websocket reactor stopped')
        udp_steward.stop()
        time.sleep(1)
        LOG.info('main: UPD Steward stopped')
        LIVESOCKET.stop()
        time.sleep(1)
        LOG.info('main: Own livesocket stoppped')
    except Exception as exception_:
        LOG.exception(exception_)
        raise exception_

    LOG.info('main: Ended')
    raw_input('All stopped. Press enter to exit')
Exemple #12
0
def main(argv):

    try:
        opts, args = getopt.getopt(argv, 'h', ['help'])

    except getopt.GetoptError:
        usage()

    for opt, val in opts:
        if opt in ('-h', '--help'):
            usage()

    print 'The count server is gonna start ...'

    factory = WebSocketServerFactory('ws://localhost:9000')
    factory.protocol = CountServerProtocol
    listenWS(factory)

    reactor.callWhenRunning(countForEver)
    reactor.run()
Exemple #13
0
            self.closeConnection('%02.f' % RESULT_FILE_TOO_LARGE)
            return
        elif length == self.maxFramePayloadSize:
            error_code = None
            try:
                result_tlv = self._handler.handle_upload(self._file_content)
            except FileHashError:
                error_code = RESULT_HASH_ERROR
            except Exception:
                log.error(traceback.format_exc())
                error_code = RESULT_FS_ERROR
            if error_code:
                self.closeConnection('%02.f' % error_code)
                return
            result = '%02.f' % RESULT_UPLOAD_SUCCESS
            result += self.unformat_tlv(result_tlv)
            self.closeConnection(result)


if __name__ == '__main__':
    # log.startLogging(sys.stdout)
    '''
    factory_echo = WebSocketServerFactory("ws://localhost:9000", debug=settings.DEBUG)
    factory_echo.protocol = EchoServerProtocol # UploadFileProtocal
    listenWS(factory_echo)'''
    factory_upload = WebSocketServerFactory("ws://localhost:9001",
                                            debug=settings.DEBUG)
    factory_upload.protocol = UploadFileProtocal
    listenWS(factory_upload)
    reactor.run()
        l = 0
        for data in payload:
            l += len(data)
            self.sha256.update(data)
        digest = self.sha256.hexdigest()
        print "Received frame with payload length %7d, compute digest: %s" % (
            l, digest)
        self.sendMessage(digest)

    def onMessageEnd(self):
        self.sha256 = None


if __name__ == '__main__':

    factory = WebSocketServerFactory("ws://localhost:9000")
    factory.protocol = FrameBasedHashServerProtocol

    enableCompression = True
    if enableCompression:
        from autobahn.compress import PerMessageDeflateOffer, \
                                      PerMessageDeflateOfferAccept

        ## Function to accept offers from the client ..
        def accept(offers):
            for offer in offers:
                if isinstance(offer, PerMessageDeflateOffer):
                    return PerMessageDeflateOfferAccept(offer)

        factory.setProtocolOptions(perMessageCompressionAccept=accept)
Exemple #15
0
	def isTyping(self):
		self.chatWith.sendMessage("typ:\n")
	
	def isNotTyping(self):
		self.chatWith.sendMessage("pyt:\n")
			
	def message(self, message):
		self.sendMessage("ann:" + message + '\n')
		
	def chatAll(self, message):
		self.sendMessage("out:" + message + '\n')
		self.chatWith.sendMessage("in:" + message + '\n')
		
	def messageAll(self, message):
		self.sendMessage("ann:" + message + '\n')
		self.chatWith.sendMessage("ann:" + message + '\n')
		
	def enableAll(self, message):
		self.sendMessage("con:" + message + '\n')
		self.chatWith.sendMessage("con:" + message + '\n')

urlString = "ws://localhost:" + port
factory = WebSocketServerFactory(urlString)
factory.protocol = Chat
factory.unusedClients = []
factory.chatting = []
listenWS(factory)
print "Chat server started in port " + port
log.msg("Chat server started in port " + port)
reactor.run()
Exemple #16
0
   try:
      user = User(username=user_name,password=password,email="",role=400,active=1)
      db.session.add(user)
      db.session.commit()
   except IntegrityError:
      return "IntegrityError"
   except:return "ServerError"
   return "true"
@app.route('/scriptcam.lic')
def static_from_root():
   return redirect('/static/ScriptCam/scriptcam.lic')

##
## create a Twisted Web resource for our WebSocket server
##
msgFactory = WebSocketServerFactory(IP,debug = debug,debugCodePaths = debug)
msgFactory.protocol = MsgServerProtocol
msgFactory.setProtocolOptions(allowHixie76 = True) # needed if Hixie76 is to be supported
msgResource = WebSocketResource(msgFactory)

imgFactory = WebSocketServerFactory(IP,debug = debug,debugCodePaths = debug)
imgFactory.protocol = ImgServerProtocol
imgFactory.setProtocolOptions(allowHixie76 = True) # needed if Hixie76 is to be supported
imgResource = WebSocketResource(imgFactory)

##
## create a Twisted Web WSGI resource for our Flask server
##
wsgiResource = WSGIResource(reactor, reactor.getThreadPool(), app)

##
Exemple #17
0
 def initializeWebSocket(self):##Starts the WebSocket
     log.startLogging(sys.stdout)##Create a logfile (not necessary)
     self.factory = WebSocketServerFactory("ws://localhost:55555", debug = False)
     self.factory.protocol = EchoServerProtocol ##assign our Protocol to send/receive Messages
     listenWS(self.factory)
     reactor.run(installSignalHandlers=0)##"installSignalHandlers=0" Necessary for Multithreading @UndefinedVariable
Exemple #18
0
                # now that envs are totally complete show results.
                if (len(self.pending_envs) == 0):
                    self.on_envs_complete()

    def onOpen(self):
        self.increment = self.increment + 1
        tests = sys.argv[1:len(sys.argv)]
        self.run_tests(tests)

    def run_tests(self, tests):
        def format(value):
            if (value[0] != '/'):
                value = '/' + value
            return value

        tests = map(format, tests)
        self.emit('run tests', {'tests': tests})

    def onMessage(self, data, binary):
        command = json.loads(data)
        # test agent protocol always uses the [event, data] format.
        self.handle_event(command[0], [command[1]])


if __name__ == '__main__':
    factory = WebSocketServerFactory("ws://localhost:8789")
    factory.protocol = TestAgentServer
    listenWS(factory)
    reactor.run()
class EchoServerProtocol(WebSocketServerProtocol):

   def sendHello(self):
      if self.send_hello:
         for i in xrange(0, 3):
            self.sendMessage("*" * (self.count * 5))
         self.count += 1
         reactor.callLater(1, self.sendHello)

   def onOpen(self):
      self.count = 1
      self.send_hello = True
      #self.sendHello()

   def onMessage(self, msg, binary):
      print msg
      self.sendMessage(msg, binary)

   def connectionLost(self, reason):
      WebSocketServerProtocol.connectionLost(self, reason)
      self.send_hello = False


if __name__ == '__main__':

   log.startLogging(sys.stdout)
   factory = WebSocketServerFactory(debug = True)
   factory.protocol = EchoServerProtocol
   reactor.listenTCP(9000, factory)
   reactor.run()
Exemple #20
0




    def listen_redis():
        redis_conn = redis.StrictRedis(host=args.redis, port=6379, db=0)
        redis_listener = PubSubRedisListener(redis_conn,['realtime'])
        redis_listener.daemon = True
        redis_listener.start()

    def listen_kafka():
        kafka = KafkaClient("localhost", 9092)
        consumer = SimpleConsumer(kafka,"socket","pyhackers-rt")
        kafka_listener = PubSubKafkaListener(kafka, consumer)
        kafka_listener.daemon = True
        kafka_listener.start()


    listen_redis()



    l = task.LoopingCall(publish_to_tenants)
    l.start(0.1)

    factory = WebSocketServerFactory("ws://localhost:{}".format(args.wsport), debug=True)
    factory.protocol = EchoServerProtocol
    listenWS(factory)

    reactor.run()
##
##      http://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing, software
##  distributed under the License is distributed on an "AS IS" BASIS,
##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##  See the License for the specific language governing permissions and
##  limitations under the License.
##
###############################################################################

import sys
from twisted.python import log
from twisted.internet import reactor
from autobahn.websocket import WebSocketServerFactory, WebSocketServerProtocol


class WebSocketTestServerProtocol(WebSocketServerProtocol):
    def onMessage(self, msg, binary):
        self.sendMessage(msg, binary)


if __name__ == '__main__':

    log.startLogging(sys.stdout)
    factory = WebSocketServerFactory(debug=False)
    factory.failByDrop = False
    factory.protocol = WebSocketTestServerProtocol
    reactor.listenTCP(9000, factory)
    reactor.run()
Exemple #22
0

if __name__ == '__main__':

    if len(sys.argv) > 1 and sys.argv[1] == 'debug':
        log.startLogging(sys.stdout)
        debug = True
    else:
        debug = False

    wsPort = 9000

    ## Our WebSocket server
    ##
    factory = WebSocketServerFactory("ws://localhost:%d" % wsPort,
                                     debug=debug,
                                     debugCodePaths=debug)

    factory.protocol = EchoServerProtocol
    factory.setProtocolOptions(allowHixie76=True)
    listenWS(factory)

    ## We need to start a "Flash Policy Server" on TCP/843
    ## which Adobe Flash player will contact to check if
    ## it is allowed to connect to the WebSocket port.
    ##
    flashPolicyFactory = FlashPolicyFactory(wsPort)
    reactor.listenTCP(843, flashPolicyFactory)

    ## Static Web server
    ##
Exemple #23
0
class EchoServerProtocol(WebSocketServerProtocol):
    def onConnect(self, connectionRequest):
        print connectionRequest
        print "Client connecting .."
        print "URL", connectionRequest.path
        print "Origin", connectionRequest.origin
        print "Protocols", connectionRequest.protocols

        if 'foo' in connectionRequest.protocols:
            ## accept WS, we will speak the 'foo' subprotocol
            return 'foo'
        else:
            raise HttpException(HTTP_STATUS_CODE_BAD_REQUEST[0],
                                "This server only speaks the 'foo' protocol")

    def onMessage(self, msg, binary):
        self.sendMessage(msg, binary)


if __name__ == '__main__':

    debug = True
    log.startLogging(sys.stdout)

    factory = WebSocketServerFactory("ws://127.0.0.1:9000", debug=debug)

    factory.protocol = EchoServerProtocol
    listenWS(factory)

    reactor.run()
Exemple #24
0
#!/usr/bin/env python2.7 -u -Wall

import sys
from twisted.internet import reactor
from twisted.python import log
from autobahn.websocket import WebSocketServerFactory, \
                               WebSocketServerProtocol, \
                               listenWS


class EchoServerProtocol(WebSocketServerProtocol):
    def onMessage(self, msg, binary):
        self.sendMessage(msg, binary)

    def onClose(self, *args):
        reactor.stop()


if __name__ == '__main__':
    factory = WebSocketServerFactory("ws://localhost:9001",
                                     debug=True,
                                     debugCodePaths=True)
    log.startLogging(sys.stdout)
    factory.protocol = EchoServerProtocol
    listenWS(factory)
    print "Here we go"
    sys.stdout.flush()  # flush the line so that tests know we're up
    sys.stderr.flush()
    reactor.run()
Exemple #25
0
      WebSocketServerProtocol.connectionLost(self, reason)
      self.send_hello = False


if __name__ == '__main__':

   log.startLogging(sys.stdout)

   ## SSL server context: load server key and certificate
   ## We use this for both WS and Web!
   ##
   contextFactory = ssl.DefaultOpenSSLContextFactory('keys/server.key', 'keys/server.crt')

   ## create a WS server factory with our protocol
   ##
   factory = WebSocketServerFactory("wss://localhost:9000", debug = False)
   factory.protocol = EchoServerProtocol

   ## Listen for incoming WebSocket connections: wss://localhost:9000
   ##
   listenWS(factory, contextFactory)

   ## Setup Web serving (for convenience): https://localhost:9090/
   ##
   webdir = File(".")
   web = Site(webdir)
   reactor.listenSSL(9090, web, contextFactory)

   ## Run everything ..
   ##
   reactor.run()
Exemple #26
0
        Send message to web socket
        """
        log.msg('Sending message to connections: %s' % data)

        payload = data.encode('utf8')

        # Send message through all connections
        for c in set(cls.connections):
            reactor.callFromThread(cls.sendMessage, c, payload)


# Log to standard output
log.startLogging(sys.stdout)

# The actual web socket
factory = WebSocketServerFactory(u'ws://localhost:9000', debug=False)
factory.protocol = WebSocket

# Initialize readers
r = readers()
valid_reader_index = -1

# Check if any valid readers are connected
for i in range(len(r)):
    for valid_card_reader in VALID_CARD_READERS:
        if str(r[i]).find(valid_card_reader) > -1:
            valid_reader_index = i

            break

# Only start the server if any valid readers are connected
Exemple #27
0
    def onMessage(self, msg, isBinary):
        if self.service:
            self.service.onMessage(msg, isBinary)

    def onClose(self, wasClean, code, reason):
        if self.service:
            self.service.onClose(wasClean, code, reason)


if __name__ == '__main__':

    if len(sys.argv) > 1 and sys.argv[1] == 'debug':
        log.startLogging(sys.stdout)
        debug = True
    else:
        debug = False

    factory = WebSocketServerFactory("ws://localhost:9000",
                                     debug=debug,
                                     debugCodePaths=debug)

    factory.protocol = ServiceServerProtocol
    factory.setProtocolOptions(allowHixie76=True, failByDrop=False)
    listenWS(factory)

    webdir = File(".")
    web = Site(webdir)
    reactor.listenTCP(8080, web)

    reactor.run()
Exemple #28
0
            file_path = FILES_PATH + file_name
            f = open(file_path, 'w')
            f.write(message)
            f.close()
            print "File %s successfully writen..." % file_name
            self.sendMessage('[C][' + file_name + ']OK')
        elif typeMsg == '[R]':
            print "[R][%s] Read %s file from %s" % (time.strftime("%H:%M:%S"),
                                                    file_name, CATALOG_NAME)
            print "File %s successfully read..." % file_name
            file_path = FILES_PATH + file_name
            f = open(file_path, 'r')
            message = '[O][' + file_name + ']' + f.read()
            f.close()
            self.sendMessage(message)


if __name__ == '__main__':
    import sys
    if len(sys.argv) < 4:
        sys.exit("Using fileserver.py [IP] [PORT] [file_catalog_name]")
    ADDRESS = str(sys.argv[1])
    PORT = int(sys.argv[2])
    CATALOG_NAME = str(sys.argv[3])
    FILES_PATH = '.\\data\\' + CATALOG_NAME + '\\'
    factory = WebSocketServerFactory("ws://" + ADDRESS + ":" + str(PORT),
                                     debug=False)
    factory.protocol = FS
    listenWS(factory)
    print 'Server starting up on %s port %s' % (ADDRESS, PORT)
    reactor.run()
import hashlib
from twisted.internet import reactor
from autobahn.websocket import WebSocketServerFactory, WebSocketServerProtocol


class FrameBasedHashServerProtocol(WebSocketServerProtocol):
    """
   Frame-based WebSockets server that computes a running SHA-256 for message data
   received. It will respond after every frame received with the digest computed
   up to that point. It can receive messages of unlimited number of frames.
   Digest is reset upon new message.
   """
    def onMessageBegin(self, opcode):
        self.sha256 = hashlib.sha256()

    def onMessageFrame(self, frame, reserved):
        self.sha256.update(str(frame))
        digest = self.sha256.hexdigest()
        self.sendMessage(digest)
        print "Sent digest for frame: %s" % digest

    def onMessageEnd(self):
        pass


if __name__ == '__main__':
    factory = WebSocketServerFactory()
    factory.protocol = FrameBasedHashServerProtocol
    reactor.listenTCP(9000, factory)
    reactor.run()
Exemple #30
0
from twisted.internet import reactor
from autobahn.websocket import WebSocketServerFactory, \
                               WebSocketServerProtocol, \
                               listenWS


class EchoServerProtocol(WebSocketServerProtocol):
    def onMessage(self, msg, binary):
        self.sendMessage(msg, binary)


if __name__ == '__main__':

    factory = WebSocketServerFactory("ws://0.0.0.0:9000", debug=True)
    factory.protocol = EchoServerProtocol
    listenWS(factory)
    reactor.run()