33import logging
44import sys
55
6- from cloudevents .conversion import to_json , from_json
76from cloudevents .pydantic import CloudEvent
87
9- from rsocket .helpers import create_future
10- from rsocket .payload import Payload
8+ from rsocket .cloudevents .serialize import cloud_event_deserialize , cloud_event_serialize
119from rsocket .routing .request_router import RequestRouter
1210from rsocket .routing .routing_request_handler import RoutingRequestHandler
1311from rsocket .rsocket_server import RSocketServer
1412from rsocket .transports .tcp import TransportTCP
1513
16- router = RequestRouter ()
14+ router = RequestRouter (cloud_event_deserialize ,
15+ cloud_event_serialize )
1716
1817
1918@router .response ('event' )
20- async def single_request_response (payload ):
21- received_event = from_json (CloudEvent , payload .data )
22- received_data = json .loads (received_event .data )
23-
24- event = CloudEvent .create (attributes = {
19+ async def event_response (event : CloudEvent ) -> CloudEvent :
20+ return CloudEvent .create (attributes = {
2521 'type' : 'io.spring.event.Foo' ,
2622 'source' : 'https://spring.io/foos'
27- }, data = json .dumps (received_data ))
28-
29- return create_future (Payload (to_json (event )))
23+ }, data = json .dumps (json .loads (event .data )))
3024
3125
3226def handler_factory ():
@@ -39,9 +33,7 @@ async def run_server(server_port):
3933 def session (* connection ):
4034 RSocketServer (TransportTCP (* connection ), handler_factory = handler_factory )
4135
42- server = await asyncio .start_server (session , 'localhost' , server_port )
43-
44- async with server :
36+ async with await asyncio .start_server (session , 'localhost' , server_port ) as server :
4537 await server .serve_forever ()
4638
4739
0 commit comments