Java-WebSocket wss通信异常

Java-WebSocket wss通信异常

前阵子一个Android APP的网络模块需要使用websocket,服务器已经搭好,js写websocket舒服得很,相对于android使用websocket容易多了。搜索了一下,java_websocket和okhttp都可以实现相关功能,我选了前者作为实现,android studio可以直接gradle添加

compile 'org.java-websocket:Java-WebSocket:1.3.0'

另外一种方法要复杂一点,依次点击
project structure->app->dependencies-> + ->library dependency 然后搜索‘WebSocket’,找到对应的依赖,双击即可,这种方法可以用在搜索其它库的最新版本。

demo代码

import android.util.Log;

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft;
import org.java_websocket.handshake.ServerHandshake;

import java.net.URI;

/**
 * Created by root on 17-1-18.
 */

public class WSClient extends WebSocketClient {
    private static final String TAG = "WSClient";
    public WSClient(URI serverURI) {
        super(serverURI);
    }

    public WSClient(URI serverUri, Draft draft) {
        super(serverUri, draft);
    }

    @Override
    public void onOpen(ServerHandshake handShakeData) {
        Log.d(TAG, "onOpen: websocket opened successfully");

    }

    @Override
    public void onMessage(String message) {
        Log.d(TAG, "onMessage: message"+message);
    }

    @Override
    public void onClose(int code, String reason, boolean remote) {
        Log.d(TAG, "onClose: websocket closed");

    }

    @Override
    public void onError(Exception ex) {
        ex.printStackTrace();
    }
}

上面的demo稍微修改一下就可以使用,放在onCreate函数里面,新开一个线程处理就行

public void initWebsocket(){
        String url="ws://192.168.1.101:8088"; //改成自已服务端的地址
        Draft draft = new Draft_17();
        try {
            URI uri = new URI(url);
            mClient = new WSClient(uri, draft);
            mClient.connect();
        } catch (URISyntaxException e) {
            e.printStackTrace();
            return;
        }

    }

问题是,当我把url改为 String url=”wss://www.xxx.xxx/wss”,也就是加了ssl协议的url,就一直连接不上,

解决方法

(未真正解决)由于服务器是nginx做的ssl代理,直接改成本来的端口就可以用了,也就是类似于上面的ws地址,不经过nginx代理就可以正常通信。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值