WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rating: Thread Rating: 29 votes, 5.00 average. Display Modes
  #1  
Old 09-13-2010, 05:00 PM
vOliver vOliver is offline
Member
 
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 = viznet.id('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:
Code:
ducks = {}

UPDATE = viznet.id('update')
SEND = viznet.id('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():
		try:
			ducks[e.client].setPosition(e.pos)
			ducks[e.client].setEuler(e.ori)
		except KeyError:
			ducks[e.client] = viz.add('duck.wrl')
			ducks[e.client].setPosition(e.pos)
			ducks[e.client].setEuler(e.ori)

viz.callback(SEND,update)

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

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

ducks = {}

UPDATE = viznet.id('update')
SEND = viznet.id('send')

def Update(e):
	ducks[e.sender].setPosition(e.pos)
	ducks[e.sender].setEuler(e.ori)

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
	ducks[e.sender].remove()

viz.callback(viznet.CLIENT_DISCONNECT_EVENT, onStopClient)
Reply With Quote
  #2  
Old 09-15-2010, 03:14 PM
Gladsomebeast Gladsomebeast is offline
Member
 
Join Date: Mar 2005
Location: Isla Vizta, CA
Posts: 397
Not sure whats going on in your code. Must be some bug somewhere that I'm not getting.

This example I worked up does what you want to do (I think):
Code:
import viz
import vizact
viz.go()

IS_SERVER = True #change me to False for client
SERVER_NAME = 'DEV8.hq.worldviz.com' #for client, set to network name or IP of server 

import viznet
UPDATE = viznet.id('update')
OTHER_EVENT = viznet.id('OTHER_EVENT')

if IS_SERVER:
	viznet.server.start()
	def broadcast():
		viznet.server.send(UPDATE,message='Hello')
	def othersend():
		viznet.server.send(OTHER_EVENT,otherMessage='other event')
	vizact.ontimer(1, broadcast)
	vizact.ontimer(3, othersend)
else:
	viznet.client.connect(SERVER_NAME)
	def onMyEvent(e):
		print 'Received event from server with message:',e.message
	viz.callback(UPDATE, onMyEvent)
	def otherEvent(e):
		print 'Received event from server with message:',e.otherMessage
	viz.callback(OTHER_EVENT, otherEvent)
__________________
Paul Elliott
WorldViz LLC
Reply With Quote
  #3  
Old 09-15-2010, 03:21 PM
Gladsomebeast Gladsomebeast is offline
Member
 
Join Date: Mar 2005
Location: Isla Vizta, CA
Posts: 397
Looked at your code a little more...

I'm not seeing any call to viznet.client.send(SEND) or viznet.server.send(SEND) in your code. Thus the viznet.callback(SEND, update) won't get used. In your client code, change to viznet.callback(UPDATE, update) to receive the viznet.client.sendAll(UPDATE) calls the clients make.
__________________
Paul Elliott
WorldViz LLC
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Client Server Networking Problem pattie Vizard 12 07-04-2013 10:11 AM
Linking problems with Live Character Frank Verberne Vizard 5 06-04-2008 12:42 PM
Floating license server problems jrodman Vizard 2 10-30-2006 11:39 AM
Intersense Server & 3d Max Hodge1620 Vizard 4 10-26-2005 02:39 PM
problem with female animations vmonkey Vizard 1 10-07-2005 11:36 AM


All times are GMT -7. The time now is 09:21 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC