pypsyc/fippos-twisted/test.py

55 lines
1.7 KiB
Python

#!/usr/bin/env python
from pypsyc import parseUNL, UNL2Location, netLocation
from pypsyc.objects.PSYCObject import PSYCQueueObject, PSYCObject, PSYCUNI, PSYCPlace, PSYCClient, ClientUser, ClientPlace, AdvancedManager, AdvancedPlace
from pypsyc.net import PSYCUDPSender
from pypsyc.center import ServerCenter, ClientCenter
import asyncore
if __name__ == '__main__':
import sys
type = sys.argv[1]
location = 'psyc://adamantine.aquarium'
center = None
if type == "server":
# tcp only server
center = ServerCenter([location + ':c'])
PSYCPlace(location + '/@place', center)
PSYCUNI(location + '/~fippo', center)
if type == "server2":
# tcp and udp server on non-standard port
center = ServerCenter([location + ':4405'])
center.connect(location)
if type == "udpserver":
center = ServerCenter([location + ':4405d'])
PSYCUNI(location + ':4405/~fool', center)
if type == "udpclient":
# this should better be done via a Center which can parse
# URLs and them handle according to their transport
# but for a quick udp sender this is okay...
q = PSYCUDPSender(location + ':4405d')
q.msg({'_target' : 'psyc://adamantine.aquarium:d/~fippo'},
{'_nick' : 'udpclient'},
'_message_private',
'hallo udp welt')
if type == "client":
center = ClientCenter()
PSYCObject('psyc://adamantine.aquarium', center)
# maybe add config information here?
# and let this thing connect as well?
me = PSYCClient('psyc://adamantine.aquarium/~fippo', center)
me.online()
# but thats the fast way to do it
me.sendmsg({'_target' : 'psyc://adamantine.aquarium/~fippo'},
{'_password' : 'xfippox'},
'_request_link',
'')
while center:
asyncore.poll(timeout=0.5)