# wsonrpc **Repository Path**: EasyProgramming/wsonrpc ## Basic Information - **Project Name**: wsonrpc - **Description**: 基于WebSocket的JsonRpc,实现Server端与Client之间的双向互访,可应用在android项目上。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2021-11-22 - **Last Updated**: 2023-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wsonrpc #### 介绍 基于WebSocket的JsonRpc,实现Server端与Client之间的双向互访,可应用在android项目上。 #### 安装教程 客户端: ``` net.apexes.wsonrpc wsonrpc-client ${version.wsonrpc} ``` 服务端: ``` net.apexes.wsonrpc wsonrpc-server ${version.wsonrpc} net.apexes.wsonrpc wsonrpc-server-support ${version.wsonrpc} ``` #### 使用说明 Server 端: ``` @MaxSessions(10000) @ServerEndpoint("/wsonrpc") public class Jsr356DemoWsonrpcServer { private final WsonrpcServerBase serverBase; public Jsr356DemoWsonrpcServer() { serverBase = new WsonrpcServerBase(WsonrpcConfigBuilder.create() .json(new JacksonImplementor()) .wrapper(new GZIPBinaryWrapper()) .logger(new SimpleWsonrpcLogger()) .build()); serverBase.getServiceRegistry() .bind(DemoService.class).toInstance(new DemoServiceImpl()) .bind(RegisterService.class).toInstance(new RegisterServiceImpl()); } @OnOpen public void onOpen(Session session) { serverBase.onOpen(WebSockets.createSession(session)); } @OnClose public void onClose(Session session, CloseReason closeReason) { serverBase.onClose(session.getId()); } @OnMessage public void onMessage(final Session session, final ByteBuffer buffer) { serverBase.onMessage(session.getId(), buffer); } } ``` Client 使用示例: ``` String url = "ws://localhost:8080/wsonrpc"; WsonrpcClient client = Wsonrpc.config() .wrapper(new net.apexes.wsonrpc.core.GZIPBinaryWrapper()) .logger(new SimpleWsonrpcLogger()) .heartbeatSeconds(6, 1) .reconnectSeconds(5, 30, 2) .pingProvider(() -> String.valueOf(System.currentTimeMillis()).getBytes()) .client(url); client.getServiceRegistry().bind(PushService.class).toInstance(new PushServiceImpl(client)); client.setReadyCallback(() -> { Wsonrpc.invoker(client) .get(RegisterService.class) .register(clientId); }); ```