在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

Java 版 SSMP 协议实现:jssmp

2017-2-9 13:05| 发布者: zhangjf| 查看: 735| 评论: 0

摘要: jssmp 是 Java 版 SSMP 开源实现。 依赖: JDK 1.8 or higher netty 3.10+ slf4j 1.7+ guava 17+ 客户端 // given: SSLEngine sslEngine;SSMPClient c = new SSMPClient(localhost, 1234, new Hashe ...

jssmp 是 Java 版 SSMP 开源实现。

依赖:

JDK 1.8 or higher

netty 3.10+

slf4j 1.7+

guava 17+

客户端

  1. // given: SSLEngine sslEngine;
  2. SSMPClient c = new SSMPClient("localhost", 1234, new HashedWheelTimer(),
  3. new NioClientSocketChannelFactory(), () -> new SslHandler(sslEngine),
  4. e -> System.out.println("event: " + e));
  5. c.connect(SSMPIdentifier.fromInternal("foo"),
  6. SSMPIdentifier.fromInternal("secret"), "NotARealSecret",
  7. new ConnectionListener() {
  8. @Override public void connected() { System.out.println("connected"); }
  9. @Override public void disconnected() { System.out.println("disconnected"); }
  10. });
  11. SSMPResponse r = c.request(SSMPRequest.ucast(SSMPIdentifier.fromInternal("bar"),
  12. "Hello World!")).get();
  13. System.out.println("response: " + r);
复制代码

服务器端

  1. // given: SSLEngine sslEngine;
  2. SSMPServer s = new SSMPServer(new InetSocketAddress("localhost", 1234),
  3. new HashedWheelTimer(), new NioServerSocketChannelFactory(),
  4. () -> new SslHandler(sslEngine),
  5. new Authenticator() {
  6. @Override public boolean authenticate(SSMPIdentifier id, SSMPIdentifier scheme, String cred) {
  7. return scheme.toString().equals("secret") && cred.equals("NotARealSecret");
  8. }
  9. @Override public ChannelBuffer unauthorized() {
  10. return ChannelBuffers.wrappedBuffer("401 secretn".getBytes(StandardCharsets.US_ASCII));
  11. }
  12. });
  13. s.start();
复制代码

项目主页:http://www.open-open.com/lib/view/home/1442045281195

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-9 20:12

Copyright 2015-2025 djqfx

返回顶部