登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 2364|回复: 15

Android端与WebSocket通信

[复制链接]

19

主题

777

帖子

1万

安币

码皇(巴士元老)

Rank: 8Rank: 8

QQ达人

发表于 2018-4-18 16:00:30 | 显示全部楼层 |阅读模式
前言:好久没写博文啦,随便写点找点存在感!!

        首先先说下移动端与后台即时通讯的方法有很多,当然首选的是长链接。但开发成本一般公司开发项目是不采取的,其次就是WebSocket,再有就是推送(但这个方式就不做解释啦)

        现在说下WebSocket的通讯方法
1、移动端与WebSocket创建链接(当然前提是WebSocket服务器端搭建完成)
URI uri;
WebSocketClient mWebSocketClient;

[Java] 查看源文件 复制代码
public void initSockect() {
        try {
            uri = new URI(Config.URL_DOMAIN_WEBSOCKET);
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        if (null == mWebSocketClient) {
            mWebSocketClient = new WebSocketClient(uri) {
                @Override
                public void onOpen(ServerHandshake serverHandshake) {
                   //这一步说明已经于WebSocket服务器端连接成功
                   //如果需要推送数据至WebSocket服务器可以在此操作(当然也可以在某一处操作,但必须判断链接成功)
                    LogUtils.d("TAGS", "onOpen: ");
                    /***TODO 推送相关,自行处理随便写的***/
                    try {
                        JSONObject getroom =new JSONObject();
                        getroom.put("a","a");
                        getroom.put("b","b");
                        getroom.put("c","c");
                        mWebSocketClient.send(getroom.toString());
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
                @Override
                public void onMessage(String s) {
                    try {
                        //这一步说明服务器端有推送并接受到信息
                        //如果WebSocket服务器端推送的信息是Json就自行处理啦
                        LogUtils.i("TAGS", "onMessage: " + o.getString("resutlMsg"));
                }
                @Override
                public void onClose(int i, String s, boolean b) {
                    LogUtils.i("TAGS", "onClose: ");
                }
                @Override
                public void onError(Exception e) {
                    LogUtils.i("TAGS", "onError: ");
                }
            };
            mWebSocketClient.connect();
        }
    }


以上已经在注释中写清楚具体流程,自行去悟吧

我一直在追寻着那一丝寂寞的源头,可却终究无果!

19

主题

777

帖子

1万

安币

码皇(巴士元老)

Rank: 8Rank: 8

QQ达人

 楼主| 发表于 2018-4-18 16:08:51 | 显示全部楼层
忘记添加引用啦
compile 'org.java-websocket:Java-WebSocket:1.3.8'
我一直在追寻着那一丝寂寞的源头,可却终究无果!

28

主题

1万

帖子

1369

安币

Android大神

小白

Rank: 6Rank: 6

发表于 2018-4-18 16:23:39 | 显示全部楼层
每次我都积极回帖的,想要安币~

14

主题

9420

帖子

4729

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2018-4-18 16:26:50 | 显示全部楼层
帮帮顶顶!!

314

主题

991

帖子

690

安币

手工艺人

发表于 2018-4-18 16:28:40 | 显示全部楼层
不错不错,楼主辛苦了。。。

11

主题

9381

帖子

-11

安币

QQ游客

推广达人

发表于 2018-4-18 16:31:20 | 显示全部楼层
楼主威武,以后多发干货,多办活动~!

317

主题

918

帖子

698

安币

手工艺人

发表于 2018-4-18 16:34:30 | 显示全部楼层
感谢分享,楼主V5~

0

主题

8

帖子

2

安币

初级码农

Rank: 1

发表于 2018-5-22 23:28:34 来自手机 | 显示全部楼层
希望有视频讲解,看不懂这些代码——
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表