echo.py
732 Bytes
from logging import getLogger
from pyramid_rpc.jsonrpc import jsonrpc_method
from ..server import (
ws_data,
ws_queue,
)
@jsonrpc_method(endpoint='rpc')
def echo(request, p):
log = getLogger('echo')
ip = request.remote_addr
mem_id = id(request)
log.info(f'{ip} {mem_id} RPC Request echo {p}')
if p['client_id'] in ws_data:
# Untuk websocket client seperti EDC
d = dict(action='echo', id=0)
ws_queue('send', p['client_id'], d)
r = dict(code=0, message='OK')
else:
r = dict(code=91, message='offline')
log.info(f'{ip} {mem_id} RPC Response {r}')
return r
def includeme(config):
config.add_jsonrpc_endpoint('rpc', '/rpc')
config.scan('.')