当前位置:   article > 正文

JAVA中webSocket应用_websocket jar包

websocket jar包

1.应用背景

现在去京东、菜鸟等平台拿快递面单,需用运用他们云打印组件,发送WebSocket指令进行快递面单打印,如下就是对webSocket简单应用。

2.导入jar包

  1. <dependency>
  2. <groupId>org.java-websocket</groupId>
  3. <artifactId>Java-WebSocket</artifactId>
  4. <version>1.3.0</version>
  5. </dependency>

3.进行webSocket工具类的编写

connectWS方法主要是进行webSocket链接,一般情况可以直接使用sendMsg方法进行连接和发送信息

  1. @Slf4j
  2. @Service
  3. public class MyWSClientUtils {
  4. @Value("${websocket.message.size}")
  5. private Integer messageSize;
  6. @Value("${websocket.connect.time}")
  7. private Integer connectTime;
  8. private static String HEARTBEAT="ping";
  9. private static Cache<String, Session> wsCache = CacheBuilder.newBuilder()
  10. .initialCapacity(3)
  11. .expireAfterWrite(10, TimeUnit.HOURS) //10h 防止无用的session
  12. .build();
  13. /**
  14. * @param uri "ws://192.168.18.51:7206/websocket/001/Sea/1"
  15. */
  16. public synchronized Session connectWS(String uri){
  17. Session sessionInCache = wsCache.getIfPresent(uri);
  18. if(sessionInCache!=null&&sessionInCache.isOpen()){return sessionInCache;}
  19. try{
  20. if(sessionInCache!=null){sessionInCache.close();}
  21. log.info("start connect ws : {}",uri);
  22. WebSocketContainer container = ContainerProvider.getWebSocketContainer();
  23. //设置消息大小最大为500KB
  24. container.setDefaultMaxBinaryMessageBufferSize(messageSize);
  25. container.setDefaultMaxTextMessageBufferSize(messageSize);
  26. // 客户端,开启服务端websocket。
  27. Session session = container.connectToServer(WSClientHandler.class,URI.create(uri));
  28. session.setMaxIdleTimeout(connectTime);// 60S
  29. session.getBasicRemote().sendText(HEARTBEAT);
  30. wsCache.put(uri,session);
  31. return session;
  32. } catch (Exception ex) {
  33. ex.printStackTrace();
  34. log.warn("c出错了 connect ws:{} exp:{}",uri,ex);
  35. }
  36. return null;
  37. }
  38. /**
  39. * @param msg
  40. * @param uri : "ws://192.168.18.51:7206/ws/001/xx/1"
  41. * @return
  42. */
  43. public Boolean sendMsg(String msg,String uri) {
  44. try
  45. {
  46. Session session = connectWS(uri);
  47. session.getBasicRemote().sendText(msg);
  48. return true;
  49. }catch (Exception e){
  50. log.error("send msg exp:{}",e);
  51. return false;
  52. }
  53. }
  54. }

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/249175
推荐阅读
相关标签
  

闽ICP备14008679号