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
Пример #2
0
    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
Пример #3
0
                               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())
Пример #5
0
            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()
Пример #6
0
      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()
Пример #7
0
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)
Пример #8
0
         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()
Пример #9
0
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()
Пример #10
0
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)