-
Notifications
You must be signed in to change notification settings - Fork 0
/
exampleClient.py
40 lines (32 loc) · 1.25 KB
/
exampleClient.py
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
# __BEGIN_LICENSE__
# Copyright (C) 2008-2010 United States Government as represented by
# the Administrator of the National Aeronautics and Space Administration.
# All Rights Reserved.
# __END_LICENSE__
from Dispatcher import Dispatcher
from SharedScheduler import scheduler
from exampleConfig import *
def writeText(sock):
sock.write('hola\n')
def handleConnect(sock):
writeText(sock)
scheduler.enterPeriodic(period=2.0, action=lambda: writeText(sock))
def handleLine(sock, line):
print 'got:', line
def handleService(finder, serviceName, serviceEvent):
print 'handling notification of service %s at event %s' % (serviceName, serviceEvent)
if serviceName == SERVER_ENDPOINT:
sock = com.connect(serviceEvent,
connectHandler = handleConnect,
lineHandler = handleLine)
def handleStdin(sock, line):
print 'you said:', line
com = Dispatcher(moduleName='exampleClient')
if NOTIFY_ENDPOINT:
com.connectToNotificationService(NOTIFY_ENDPOINT)
if USE_SERVICE_DISCOVERY:
com.findServices(protoName = PROTOCOL, serviceHandler = handleService)
else:
handleService(None, SERVER_ENDPOINT, SERVER_ENDPOINT)
sock = com.connect('console:', lineHandler = handleStdin)
com.runForever()