autobahn android使用WebSocket 报错 20C

我在做一个Android项目中用到了websocket,使用了autobahn-android.jar包,但是在建立连接之后报了错误。

 D/de.tavendo.autobahn.WebSocketReader: run() : WebSocketException (de.tavendo.autobahn.WebSocketException: RSV != 0 and no extension negotiated)
 D/de.tavendo.autobahn.WebSocketReader: ended
 D/de.tavendo.autobahn.WebSocketConnection: opening handshake received
 D/de.tavendo.autobahn.WebSocketConnection: fail connection [code = 4, reason = WebSockets protocol violation

我查看了错误地点并且看了源码,错误发生在WebSocketReader的processData处,源码为:

 if (mFrameHeader == null) {

         // need at least 2 bytes from WS frame header to start processing
         if (mFrameBuffer.position() >= 2) {

            byte b0 = mFrameBuffer.get(0);
            boolean fin = (b0 & 0x80) != 0;
            int rsv = (b0 & 0x70) >> 4;
            int opcode = b0 & 0x0f;

            byte b1 = mFrameBuffer.get(1);
            boolean masked = (b1 & 0x80) != 0;
            int payload_len1 = b1 & 0x7f;

            // now check protocol compliance

            if (rsv != 0) {
               throw new WebSocketException("RSV != 0 and no extension negotiated");
            }
                        ...(省略)
背景:
        服务端我使用了Spring+SpringMVC+Hibernate框架,并且搭建了WebSocket的服务端,在Web版本使用JavaScript连接WebSocket正常,地址保证没有任何问题。

探索:
遇到这个问题之后我百度&Google了很久,发现有GitHub和StackOverflow不少人提出来这个问题,但都没有得到有效解决,看了半天感觉靠谱的回答说是autobahn支持websocket版本的问题,,但是并没有给出行之有效的解决方法。我使用的WebSocket是Java7及以上自带的javax.websocket里面的方法,也没有具体的版本说明,希望做过或者了解的大神能够解答一下疑惑。是因为版本的问题么?如果是应该使用什么版本的WebSocket?如果不是,是因为什么原因导致的,应该如何解决呢?
先感谢阅读。

0

1个回答

如果是怀疑版本问题,可以换一个其他的websocket的jar包试试

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
websocket autobahn jar包的用法
autobahn-0.5.0.jar 文件的地址: http://pan.baidu.com/s/1slQYcKP 使用websocket好简单方便,据一天来我们公司的大神说:websocket是封装好的成熟的框架,比socket更安全,用起来方便。在原有websocket的基础上加了一个心跳包的功能。 并且设置了一个链接超时的时间限制。代码还需要不停地优化。 package com
关于Websocket在安卓上的实现-autobahn
关于websocket 在安卓上的实现,可以说是一段坎坷路,搜索百度会出现一个叫Websocket的一款API,然而,其用在android上却需要一条坎坷人生路,后来找到了autobahn-Android以后,峰回路转。 Autobahn| Android是由项目实现创建了一个开源的网络库的Java / Android的 WebSocket协议和 Web应用程序消息协议(WAMP)
android websocket client 如何调用autobahn.jar
Android调用  autobahn.jar:        1.下载源码:使用library: https://github.com/tavendo/AutobahnAndroid;         2.编译,得到autohan.jar,拷贝到项目的lib下;        3.MainActivity: 。。。。。。 import de.tavendo.autobahn.Web
android 使用 websocket 进行长链接的一个简单的 demo,可以用来收发消息或别的操作,里面用到了 autobahn 的 jar 包
android 使用 websocket 进行长链接的一个简单的 demo,可以用来收发消息或别的操作,里面用到了 autobahn 的 jar 包
Android端websocket调用实例(含autobahn-0.5.0.jar)
Android端websocket调用实例(含autobahn-0.5.0.jar)
Android 关于WebSocket的应用
关于WebSocket,个人理解是一种网络协议,好比http,好处在于可以建立一条服务器与客户端长久的连接,从而减少每次通信都需重新建立连接而产生的损耗;缺点在于如果客户端是智能设备,当处于休眠状态时,会自动关闭网络(未测试),还有长链接的流量大小(未测试)。用途多在于即时通信,网上聊天室等。websocket 简介:http://www.html5rocks.com/zh/tutorials/w
android利用websocket协议与服务器通信
最近做一个项目,需求中需要服务器主动推送消息到客户端。这样的话一般的http连接就不能使用了。博主问了个朋友,向我推荐websocket协议,特此测试了一下,发现效果很好。 android本身没有websocket的库,需要自己下载 http://autobahn.ws/android/downloads 客户端代码。。。。 界面布局自己写,很简单的两个button package com
webSocket通讯实例,长连接
android webSocket 实时通讯长连接 ,使用autobahn框架,完整代码下载
android集成websocket下载方式
http://www.zhihu.com/question/20215561 协议介绍可以看看这里。下面稍微总结一下:webstocket是html5的一种新的协议,它实现了浏览器与服务器的双向通道,使得数据可以快速的双向传播.通过一次简单的握手,建立了客户端和服务器的联系后,服务器可以主动推送信息给客户端,而不需要客户端的反复请求。一个websocket连接是客户端与服务器端在http协议的初始
在python中使用websocket
介绍一款很帅的插件AutobahnPython,通过它可以在python中很方便的使用websocket进行通信(基于twisted框架)。 这个插件真正强大的地方是它提供了一个 发布/订阅模式,具体内容有空再写,先简单介绍一下如何建立传统的连接。 下载地址:http://autobahn.ws/python/downloads   建立服务器: # 必须的模块 from twisted
android中使用原生WebSocket时产生的bug
 新项目要使用WebSocket来推送数据,在网上一通搜索和测试后 大神http://blog.csdn.net/coffeeco/article/details/13276437 的文章非常给力。 但是在调试的过程中报出两处异常,分别是 1、WebSocketException (de.tavendo.autobahn.WebSocketException: RSV != 0 and
python webscoket(Autobahn)的使用
自从18年4月份入职游戏公司之后很少有时间写博客了! 今天来聊聊python的websocket的使用,在游戏行业游戏客户端和服务端需要大量的,快速的通讯,这里面就会用到websocket Autobahn 是一个高性能的websocket 它采用了两种实现方案 1 基于Twisted 2 基于asyncio Autobahn 有如下的特点: framework...
Android 源码系列之<十五>,深入浅出WebSocket,打造自己的即时聊天交互系统<上>
做Java开发的小伙伴们应该对Socket比较熟悉,在J2SE的Socket编程这一章节中专门对Socket通信做了详细介绍,当时自学完该章节后只知道Socket是端到端通信的,Server端根据指定端口打开Socket链接,然后等待客户端来连接;客户端根据Server端IP地址和端口创建一个Socket通道,根据该通道和Server端进行通信。后来在工作中有使用Socket通信,使用场景是聊天和推送,当时为了项目进度就在GitHub上找了一个不错的开源库autobahn-java中应用在项目中,功能实现之
autobahn-python的使用——sendMessage()和断线自动重连
客户端代码:# -*-coding:utf8-*- import threading import timefrom autobahn.asyncio.websocket import WebSocketClientProtocolfrom autobahn.asyncio.websocket import WebSocketClientFactory import asyncioclass Bas
WebSocket实现Android客户端之间的简单通讯
作为一个刚毕业的程序猴,自觉的自己能力比较欠缺,正好最近公司没有什么项目,就考虑自己动手做个项目。想来想去,就把自己一直想做的即时通讯拿出来做做。可是问题来了,作为一个Android开发人员,一直没有接触后台的人来说,做一个完整的项目还是比较麻烦的。于是只有边学边做了。 对于通讯来说,我对Websocket情有独钟,可能是因为在学校的时候听说过吧。话不多说,经过几天的调研,终于在搭了一个简单的S
android下的即时通信autobahn
因为只是简单的使用。最后选择了websocket  使用的是autobahn 依赖compile files('libs/autobahn-0.5.0.jar') 建立一个service用来接收消息,再通过eventbus把消息发给activity。 使用方法http://blog.csdn.net/coffeeco/article/details/13276437
Android探索之旅(第十七篇)Android中使用webSocket保持长连接通信
CSDN传送门内含GitHub
Android WebSocket通信通过Service来绑定
最近的一个项目使用到了WebSocket 找了半天最终选择这个开源项目。 http://my.oschina.net/1123581321/blog/333031 代码如下import de.tavendo.autobahn.WebSocketConnection; import de.tavendo.autobahn.WebSocketException; import de.taven
android websocket 推送 长连接
android利用autobahn和服务器端websocket长连接以用来推送 经测试可以运行成功,实现服务器,android间相互通信
Autobahn实现WebSocket通信
Socket通信之WebSocket最近开发中需要通过ws协议通信,于是做了些功课,现在WebSocket用的比较多的就是Autobahn,由于使用方便所以选择了它。 首先需要引入autobahn-0.5.0.jar包,百度上就可以下载。 然后就是使用WebSocketConnection这个类,使用方法直接上代码吧 mConnect.connect(wsurl, new WebSocketHand
python实现的websocket总结 —— wspy
之前曾有php版的websocket封装包,见Websocket——php实战,最近使用python做一些功能,需要用到对websocket的操作,因此,参照之前的实现,实现了这个python版本。源码见https://github.com/OshynSong/wspy。 整体实现起来,需要在建立socket监听端口,这需要用到socket标准库模块;之后,需要对对网络字节流进行操作,这个方面py
Android通讯-webSocket
概述上一篇简单的认识了Socket以及他的使用,在学习过程中看到了WebSocket的身影,于是乎百度了一把,这货也可以做全双工的网络通讯,而且是html5提出来的新东西!程序员嘛!就是要对新的东西充满了好奇!WebSocket引用API里面的一句话,WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。全双工:简单理解为C,S端可以相互发送和接收数据。WebSoc
websocket jar包2017
websocket jar包2017 websocket jar包2017 websocket jar包2017 websocket jar包2017 websocket jar包2017 websocket jar包2017
autobahn-0.5.0.jar
这是autobahn-0.5.0.jar的关于websocket的jar包
autobahn-0.5.0.jar的源码
这个源码的要求安卓studio3.0的版本,gradle-4.1,源码直接下载导入配置一下gradle基本上就可以运行了。需要的小伙伴可以下载
WebSocket安卓客户端实现详解(一)--连接建立与重连
今年在公司第一个需求就是基于websocket写一个客户端消息中心,现在已经上线很久了在司机这种网络环境平均一天重连8次,自认为还是不错的.当时写的时候那个心酸啊,主要因为第一次写都不知道该从哪下手,没有方向.所以这里我将尽可能详细的跟大家分享出来. 本篇内容会比较多,先来段舞蹈热身下.我准备按如下顺序来讲解 整体流程的一个概括了解大体思路. 把大体流程细化,逐步去实现. 客户端大体流程前言这里特别
android 消息推送时,长连接的使用(websocket)
首先要说的是在app开发中,消息推送是必不可少的一个功能,方式有多种,现在简单介绍一下我在项目开发中使用的方法,长连接 优点:开发成本低,数据安全,对于服务器压力较小(相对轮询) 缺点:耗电量高,容易被系统kill,需要一定的技术 使用okhttp和封装的websocket包来实现 代码贴出如下: //长连接的建立 static OkHttpClient mOkHttpC
websocket -jar包
很好用的websocket保存了,使用了好久,目测已经亲自实验,不会用的私聊我.
websocket jar包
websocket jar包,spring-messaging-4.0.6.RELEASE,spring-websocket-4.0.6.RELEASE,tomcat7-websocket,websocket-api
Android通过WebSocket建立一个长连接(带心跳检测)从服务器端接收消息
   最近公司要做一款内部使用的工具类app,方便销售部门打电话(其实就是在后台有好多用户数据,之前销售部门同事拨打电话,需要自己从销售后台查看用户手机号等信息,然后自己拿自己手机拨号,然后打出去。现在想实现销售的同事,点击销售后台的按钮,自己的手机直接拨号的功能)。为此,开始着手思考,怎么实现销售后台点击按钮,手机app端能收到点击按钮的监听。  首先,后台提供一个接口,在服务器端不断的调用接口...
Autobahn websocket implementation
Autobahn|Android is an open-source networking library for Java/Android created by the Autobahn project that implementsthe WebSocket Protocol andthe Web Application Messaging Protocol (WAMP)for creatin
记录Ionic开发中,安卓5.5+使用websocket,连接错误
在Ionic App开发中,一功能需要使用websocket,经测试安卓5.0连接正常,安卓5.5+出现连接错误,回调了onerror()方法。
TCPkali —— TCP 和 WebSocket 性能测试工具
tcpkali 是一个高性能的负载生成工具,用于 TCP 和 WebSocket 服务器。测试示例: tcpkali -em "GET / HTTP/1.1\r\nHost: google.com\r\n\r\n" -r 10 --latency-marker "HTTP/1.1" google.com:80 tcpkali --connections 10000 yahoo.com:8
websocket autobahn webrtc
最近分析webrtc android 的交互流程(房间服务器、信令、穿透等),发现webrtc是使用的是autohahn 的 websocket,初步看了下发现这个库封装的很不错,就分享出来,下面的 内容是来自网上。。 Autobahn Android是一个开源的网络类库用于Java/Android应用。实现了 The WebSocket Protocol 和The WebS
Android连接webSocket客户端实现
Android连接webSocket客户端实现
socket长时间连接,需要心跳包。
其次socket的长时间连接的话,是需要心跳包。
基于Html5 websocket和Python的在线聊天室
一、什么是WebSocket API      WebSocket API是下一代客户端-服务器的异步通信方法。该通信取代了单个的TCP套接字,使用ws或wss协议,可用于任意的客户端和服务器程序。WebSocket目前由W3C进行标准化。WebSocket已经受到Firefox 4、Chrome 4、Opera 10.70以及Safari 5等浏览器的支持。      WebSo
Android WebSocket连接不成功
onFailurejavax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
android中使用webSocket通信
概述最近公司项目准备使用WebSocket实现消息推送功能,在网上搜了一下几个支持WebSocket的框架,在使用框架之前简单说一下我对WebSocket的理解:同HTTP协议相似,也是一种协议,我们知道,没种协议有他的长处和短处,HTTP适合接口通信、单次通信,但是如果是聊天这种频繁的通信且不只是客户端请求服务端要求双方都能够给对方发消息的使用HTTP就不怎么合适了,像WebSocket,服务器和
android 对webSocket的使用
在android中如何使用websocket