java调用websocket接口

项目中需要调用第三方语音电话接口,代码如下:
1.pom.xml引入websocket依赖

 <dependency>
       <groupId>org.java-websocket</groupId>
       <artifactId>Java-WebSocket</artifactId>
       <version>1.3.8</version>
 </dependency>

2.YiWeiDialUtil.java

package com.yudu.sms.util;

import com.alibaba.fastjson.JSONObject;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.net.URI;
import java.net.URISyntaxException;

public class YiWeiDialUtil {
    private static final Logger logger = LoggerFactory.getLogger(YiWeiDialUtil.class);

    public static void dial(String ws, String phone, String recordName) {

        try {
            URI uri = new URI(ws);
            WebSocketClient client = new WebSocketClient(uri) {
                @Override
                public void onOpen(ServerHandshake serverHandshake) { }

                @Override
                public void onMessage(String s) {
                    logger.info("返回的数据:" + s);
                    JSONObject jo = JSONObject.parseObject(s);
                    String dynamicdata = jo.getString("dynamicdata");
                    if (dynamicdata != null) {
                        JSONObject jo_dynamicdata = JSONObject.parseObject(dynamicdata);
                        String realtimestate = jo_dynamicdata.getString("realtimestate");
                        if (realtimestate.equals("outconnected")) {
                            send("{\"command\":\"closeheadsettochannel\"}");
                            String recordMp3 = System.getProperty("user.dir") + "\\src\\main\\resources\\" + recordName + ".mp3";
                            String record = "{\"command\":\"PlayStartRecord\",\"arguments\":{\"content\":\"" + recordMp3 + "\"}}";
                            send(record);
                        }
                    }
                }

                @Override
                public void onClose(int i, String s, boolean b) { }

                @Override
                public void onError(Exception e) {
                    logger.error(e.getMessage());
                }
            };
            //建立连接
            client.connect();

            while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) {
                logger.info("连接中...");
            }
            String dial = "{\"command\":\"Dial\",\"arguments\":{\"phone\":\"" + phone + "\"}}";
            client.send(dial);
        } catch (URISyntaxException e) {
            logger.info(e.getMessage());
        }
    }
}
···
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • spring官方文档:http://docs.spring.io/spring/docs/current/spri...
    牛马风情阅读 1,734评论 0 3
  • title: Java EE 7 Tutorial分析date: 2016-12-10 16:47:25catag...
    raincoffee阅读 1,917评论 2 2
  • 一. Java基础部分.................................................
    wy_sure阅读 3,839评论 0 11
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,694评论 0 4
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,681评论 1 114