# and is available at http://www.eclipse.org/legal/epl-v10.html
import argparse
+import base64
import logging
from websocket import create_connection
"""
parser = argparse.ArgumentParser()
parser.add_argument("--uri", default="ws://127.0.0.1:8185/", help="URI to connect")
- parser.add_argument("--count", type=int, default=1, help="Number of messages to receive")
+ parser.add_argument(
+ "--count", type=int, default=1, help="Number of messages to receive"
+ )
+ parser.add_argument(
+ "--credentials",
+ default="admin:admin",
+ help="Basic authorization username:password",
+ )
parser.add_argument("--logfile", default="wsreceiver.log", help="Log file name")
- parser.add_argument("--debug", dest="loglevel", action="store_const",
- const=logging.DEBUG, default=logging.INFO, help="Log level")
+ parser.add_argument(
+ "--debug",
+ dest="loglevel",
+ action="store_const",
+ const=logging.DEBUG,
+ default=logging.INFO,
+ help="Log level",
+ )
args = parser.parse_args()
return args
class WSReceiver(object):
"""Class which receives web socket messages."""
- def __init__(self, uri):
+ def __init__(self, uri, credentials):
"""Initialise and connect to URI.
Arguments:
:uri: uri to connect to
+ :credentials: user:password used in Basic Auth Header
Returns:
None
"""
self.uri = uri
+ self.credentials = credentials
+ auth_string = base64.b64encode(credentials.encode("ascii"))
+ self.headers = {"Authorization": "Basic " + auth_string.decode("ascii")}
+
logger.info("Connecting to: %s", self.uri)
- self.ws = create_connection(self.uri)
+ self.ws = create_connection(self.uri, header=self.headers)
def close(self):
"""Close the connection.
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.setLevel(args.loglevel)
- receiver = WSReceiver(args.uri)
+ receiver = WSReceiver(args.uri, args.credentials)
remains = args.count
logger.info("Expected %d message(s)", remains)
while remains: