def main(argv=None): """Main routine of script""" if argv is None: argv = sys.argv try: # parse options and args opts, args = getopt.getopt(argv[1:], "", ["help","node=","capability="]) print "Node/Capability WebSocket consumer." for k,v in opts: if k == "--help": print "A simple python script for consuming readings for a specific Node/Capability pair.\nHit CTRL-C to stop script at any time.\nMust provide all of the parameters listed bellow :" print "\t --node={node's URN}, define the node." print "\t --capability={zone's ID}, define the node's zone." elif k == "--node": node = v elif k == "--capability": capability = v if(not( vars().has_key("node") and vars().has_key("capability"))): print >>sys.stderr, "You must specify --node and --capability" return -1 # initialize WebSocketClientFactory object and make connection PROTOCOL = [''.join([str(node),'@',str(capability)])] factory = WebSocketClientFactory(WS_URL,None,PROTOCOL) factory.protocol = NodeCapabilityConsumerProtocol factory.setProtocolOptions(13) connectWS(factory) reactor.run() except getopt.error, msg: print >>sys.stderr, msg print >>sys.stderr, "for help use -h or --help" return -1
def setUp(self): self._server = Server() port = self._server.start() address = "ws://localhost:%d" % port factory = WebSocketClientFactory(address) factory.protocol = Protocol factory.setProtocolOptions(openHandshakeTimeout=0) self._connector = connectWS(factory) self._client_factory = factory
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__': if len(sys.argv) < 2: print "Need the WebSocket server address, i.e. ws://localhost:9000" sys.exit(1) factory = WebSocketClientFactory(sys.argv[1]) # uncomment to use Hixie-76 protocol factory.setProtocolOptions(allowHixie76 = True, version = 0) factory.protocol = EchoClientProtocol connectWS(factory) reactor.run()
# initialize WebSocketClientFactory object and make connection reconnect() def reconnect(): while 1: try: urllib2.urlopen(http_URL) except urllib2.HTTPError, e: if e.code==406: break except urllib2.URLError, e: logging.info("server unavailable") else: break time.sleep(10) # initialize WebSocketClientFactory object and make connection PROTOCOL = [''.join(['SUB@',str(temperaturenode),'@',str(temperaturecapability)])] factory = WebSocketClientFactory(WS_URL,None,PROTOCOL) factory.protocol = NodeCapabilityConsumerProtocol factory.setProtocolOptions(13) connectWS(factory) if (reactor.running): logging.info("running") else: reactor.run() if __name__ == '__main__': sys.exit(main())
self.sendClose() def onClose(self, wasClean, code, reason): reactor.stop() if __name__ == '__main__': factory = WebSocketClientFactory("ws://localhost:9000") factory.protocol = FrameBasedHashClientProtocol enableCompression = True if enableCompression: from autobahn.compress import PerMessageDeflateOffer, \ PerMessageDeflateResponse, \ PerMessageDeflateResponseAccept ## The extensions offered to the server .. offers = [PerMessageDeflateOffer()] factory.setProtocolOptions(perMessageCompressionOffers=offers) ## Function to accept responses from the server .. def accept(response): if isinstance(response, PerMessageDeflateResponse): return PerMessageDeflateResponseAccept(response) factory.setProtocolOptions(perMessageCompressionAccept=accept) connectWS(factory) reactor.run()
self.sendHello() def onMessage(self, msg, binary): print "Got echo: " + msg if msg == self.msg: print("It works!") else: print("Wrong message!") reactor.stop() if __name__ == "__main__": if len(sys.argv) < 2: print "Need the WebSocket server address, i.e. ws://localhost:8081/echo/websocket" sys.exit(1) debug = False if debug: log.startLogging(sys.stdout) print "Using Twisted reactor class %s" % str(reactor.__class__) url = sys.argv[1] factory = WebSocketClientFactory(url, debug = debug, debugCodePaths = debug) factory.setProtocolOptions(version = 13) factory.protocol = EchoClientProtocol connectWS(factory) reactor.run()
def start_client(): factory = WebSocketClientFactory('ws://127.0.0.1:9000') # uncomment to use Hixie-76 protocol factory.setProtocolOptions(allowHixie76 = True, version = 0) factory.protocol = EchoClientProtocol connectWS(factory)
self.sendClose() def onClose(self, wasClean, code, reason): reactor.stop() if __name__ == '__main__': factory = WebSocketClientFactory("ws://localhost:9000") factory.protocol = FrameBasedHashClientProtocol enableCompression = True if enableCompression: from autobahn.compress import PerMessageDeflateOffer, \ PerMessageDeflateResponse, \ PerMessageDeflateResponseAccept ## The extensions offered to the server .. offers = [PerMessageDeflateOffer()] factory.setProtocolOptions(perMessageCompressionOffers = offers) ## Function to accept responses from the server .. def accept(response): if isinstance(response, PerMessageDeflateResponse): return PerMessageDeflateResponseAccept(response) factory.setProtocolOptions(perMessageCompressionAccept = accept) connectWS(factory) reactor.run()
import wsaccel wsaccel.patch_autobahn() 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__': if len(sys.argv) < 2: print "Need the WebSocket server address, i.e. ws://localhost:9000" sys.exit(1) factory = WebSocketClientFactory(sys.argv[1]) # uncomment to use Hixie-76 protocol factory.setProtocolOptions(allowHixie76=True, version=0) factory.protocol = EchoClientProtocol connectWS(factory) reactor.run()
def start_client(): factory = WebSocketClientFactory('ws://127.0.0.1:9000') # uncomment to use Hixie-76 protocol factory.setProtocolOptions(allowHixie76=True, version=0) factory.protocol = EchoClientProtocol connectWS(factory)