View Single Post
Old 09-13-2010, 04:00 PM
vOliver vOliver is offline
Join Date: Sep 2010
Posts: 6
Problem with server Events

We're having a problem creating a simple server/client model where users log in and they can move around in the same world. We used the duck default model as avatars. I can paste the code in but lets see if i'm missing something obvious

The problem is with the events. Both server and client have the code
SEND ='send')

and I then I do something in the client like

viznet.callback(SEND, update)

and this calls a function that updates the location of all the ducks. The code doesn't work because I never get something sent using the event id SEND for any of the clients. BUT, if I replace SEND with viz.NETWORK_EVENT, everything works as expected. But this is obviously problematic because it triggers on every event, and not all of the events are updates.

I tried printing out the value of UPDATE and its some crazy negative number, however it is the same number on both the server and client.

The relevant client code:
ducks = {}

UPDATE ='update')
SEND ='send')

def sendData():
	global UPDATE
	viznet.client.sendAll(UPDATE, client=viz.getComputerName(), ori = viz.MainView.getEuler(), pos = viz.MainView.getPosition())

def update(e):
	print 'hello'
	if e.client != viz.getComputerName():
		except KeyError:
			ducks[e.client] = viz.add('duck.wrl')


vizact.ontimer(0.1, sendData)
and Server code:

viznet.server.start(port_in=14950, port_out=14951)

ducks = {}

UPDATE ='update')
SEND ='send')

def Update(e):

viz.callback(UPDATE, Update)

def onStartClient(e):
	print '**Client Joined:', e.sender
	ducks[e.sender] = viz.add('duck.wrl')
viz.callback(viznet.CLIENT_CONNECT_EVENT, onStartClient)

def onStopClient(e):
	print '** Client left:', e.sender

viz.callback(viznet.CLIENT_DISCONNECT_EVENT, onStopClient)
Reply With Quote