jssmp是Java版SSMP开源实现。
依赖:
JDK1.8orhigher
etty3.10+
slf4j1.7+
guava17+
客户端
// give: SSLEgie sslEgie;SSMPCliet c = ew SSMPCliet("localhost", 1234, ew HashedWheelTimer(), ew NioClietSocketChaelFactory(), () -> ew SslHadler(sslEgie), e -> System.out.pritl("evet: " + e));c.coect(SSMPIdetifier.fromIteral("foo"), SSMPIdetifier.fromIteral("secret"), "NotARealSecret", ew CoectioListeer() { @Override public void coected() { System.out.pritl("coected"); } @Override public void discoected() { System.out.pritl("discoected"); } });SSMPRespose r = c.request(SSMPRequest.ucast(SSMPIdetifier.fromIteral("bar"), "Hello World!")).get();System.out.pritl("respose: " + r);服务器端
// give: SSLEgie sslEgie;SSMPServer s = ew SSMPServer(ew IetSocketAddress("localhost", 1234), ew HashedWheelTimer(), ew NioServerSocketChaelFactory(), () -> ew SslHadler(sslEgie), ew Autheticator() { @Override public boolea autheticate(SSMPIdetifier id, SSMPIdetifier scheme, Strig cred) { retur scheme.toStrig().equals("secret") && cred.equals("NotARealSecret"); } @Override public ChaelBuffer uauthorized() { retur ChaelBuffers.wrappedBuffer("401 secret\".getBytes(StadardCharsets.US_ASCII)); } });s.start();
评论