I'm reposting as my first didn't seem to go through....
I got this working with the pyjamas JSONRPCExample. Most of the
changes were in the jsonrpc server examples posted above. Here's the
code
---------------- controllers/rpc.py ----------------------
# try something like
def index():
return jsonrpc.serve()
@jsonrpc
def echo(text):
return 'echoing: %s' % text
@jsonrpc
def reverse(text):
return text[-1::-1]
@jsonrpc
def uppercase(text):
return text.upper()
@jsonrpc
def lowercase(text):
return text.lower()
------------- models/jsonrpc.py -------------------------
"""
original code from : http://trac.pyworks.org/pyjamas/wiki/DjangoWithPyJamas
"""
import gluon.contrib.simplejson as simplejson
import types
class JSONRPCService:
def response(self, id, result):
return simplejson.dumps({'version': '1.1', 'id':id,
'result':result, 'error':None})
def error(self, id, code, message):
return simplejson.dumps({'id': id,
'version': '1.1',
'error': {'name': 'JSONRPCError',
'code': code,
'message': message
}
})
def __init__(self):
self.methods={}
def serve(self):
import sys
data = simplejson.loads(request.body.read())
id, method, params = data["id"], data["method"], data
["params"]
if method in self.methods:
try:
result =self.methods[method](*params)
return self.response(id, result)
except BaseException:
etype, eval, etb = sys.exc_info()
return self.error(id, 100, '%s: %s' %(etype.__name__,
eval))
except:
etype, eval, etb = sys.exc_info()
return self.error(id, 100, 'Exception %s: %s' %(etype,
eval))
else:
return self.error(id, 100, 'method "%s" does not exist' %
method)
def __call__(self,func):
self.methods[func.__name__]=func
return func
def listmethods(self):
return self.methods.keys()
jsonrpc=JSONRPCService()
-----------------------------------------------------------------------------------------
Then you need to change the server location in the pyjamas code to
something like this
class EchoServicePython(JSONProxy):
def __init__(self):
JSONProxy.__init__(self, "/pyjamas_2/rpc", ["echo", "reverse",
"uppercase", "lowercase"])
where you would change "pyjamas_2" for your app name
I put the "output" folder from the pyjamas build into the web2py
static directory
Chris
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---