WebSocketClientTest.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package ws;
  2. import org.java_websocket.WebSocket;
  3. import org.java_websocket.client.WebSocketClient;
  4. import org.java_websocket.enums.ReadyState;
  5. import org.java_websocket.handshake.ServerHandshake;
  6. import org.joda.time.DateTime;
  7. import java.net.URI;
  8. import java.net.URISyntaxException;
  9. import java.util.Iterator;
  10. /**
  11. * <pre>
  12. *
  13. * Created by zhenqin.
  14. * User: zhenqin
  15. * Date: 2023/3/17
  16. * Time: 下午4:19
  17. * Vendor: yiidata.com
  18. *
  19. * </pre>
  20. *
  21. * @author zhenqin
  22. */
  23. public class WebSocketClientTest {
  24. public static void main(String[] args) throws Exception {
  25. MsgWebSocketClient client = new MsgWebSocketClient("ws://localhost:9696/dataopsapi/websocket/1");
  26. client.connect();
  27. while (client.getReadyState() != ReadyState.OPEN) {
  28. System.out.println("还没有打开");
  29. Thread.sleep(200);
  30. }
  31. System.out.println("建立websocket连接");
  32. client.send("asd: " + DateTime.now().toString("yyyy-MM-dd HH:mm:ss"));
  33. Thread.sleep(5000);
  34. client.close();
  35. }
  36. static class MsgWebSocketClient extends WebSocketClient {
  37. public MsgWebSocketClient(String url) throws URISyntaxException {
  38. super(new URI(url));
  39. }
  40. @Override
  41. public void onOpen(ServerHandshake shake) {
  42. System.out.println("握手...");
  43. for (Iterator<String> it = shake.iterateHttpFields(); it.hasNext(); ) {
  44. String key = it.next();
  45. System.out.println(key + ":" + shake.getFieldValue(key));
  46. }
  47. }
  48. @Override
  49. public void onMessage(String paramString) {
  50. System.out.println("接收到消息:" + paramString);
  51. }
  52. @Override
  53. public void onClose(int paramInt, String paramString, boolean paramBoolean) {
  54. System.out.println("关闭..." + paramString);
  55. }
  56. @Override
  57. public void onError(Exception e) {
  58. e.printStackTrace();
  59. System.out.println("异常" + e);
  60. }
  61. }
  62. }