-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_websocket_server.py
More file actions
86 lines (75 loc) · 2.58 KB
/
Copy pathrun_websocket_server.py
File metadata and controls
86 lines (75 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import argparse
import logging
import os
from multiprocessing import Process
import syft as sy
import torch
from syft.workers.websocket_server import WebsocketServerWorker
def start_proc(participant, kwargs): # pragma: no cover
""" helper function for spinning up a websocket participant """
def target():
server = participant(**kwargs)
server.start()
p = Process(target=target)
p.start()
return p
if __name__ == "__main__":
# Logging setup
FORMAT = "%(asctime)s %(levelname)s %(filename)s(l:%(lineno)d, p:%(process)d) - %(message)s"
logging.basicConfig(format=FORMAT)
logger = logging.getLogger("run_websocket_server")
logger.setLevel(level=logging.DEBUG)
# Parse args
parser = argparse.ArgumentParser(description="Run websocket server worker.")
parser.add_argument(
"--port",
"-p",
type=int,
help="port number of the websocket server worker, e.g. --port 8777",
)
parser.add_argument("--host", type=str, default="localhost", help="host for the connection")
parser.add_argument(
"--id", type=str, help="name (id) of the websocket server worker, e.g. --id alice"
)
parser.add_argument(
"--testing",
action="store_true",
help=(
"if set, websocket server worker will load "
"the test dataset instead of the training dataset"
),
)
parser.add_argument(
"--verbose",
"-v",
action="store_true",
help="""if set, websocket server worker will be started in verbose mode""",
)
parser.add_argument(
"--notebook",
type=str,
default="normal",
help=(
"can run websocket server for websockets examples of mnist/mnist-parallel or "
"pen_testing/steal_data_over_sockets. Type 'mnist' for starting server "
"for websockets-example-MNIST, `mnist-parallel` for websockets-example-MNIST-parallel "
"and 'steal_data' for pen_tesing stealing data over sockets"
),
)
parser.add_argument("--pytest_testing", action="store_true", help="""Used for pytest testing""")
args = parser.parse_args()
# Hook and start server
hook = sy.TorchHook(torch)
# server = start_proc(WebsocketServerWorker, kwargs)
kwargs = {
"id": args.id,
"host": args.host,
"port": args.port,
"hook": hook,
"verbose": args.verbose,
}
if os.name != "nt":
server = start_proc(WebsocketServerWorker, kwargs)
else:
server = WebsocketServerWorker(**kwargs)
server.start()