如何解决通过okHttp套接字发送数据
我正在尝试与websocket
连接,并且测试套接字正在wss://echo.websocket.org
上运行我的代码,但是WebSocket无法正常工作并且出现故障,但是无论何时尝试使用浏览器都可以。
我的Android代码
// val request: Request = Request.Builder().url("wss://echo.websocket.org").build()
val request: Request = Request.Builder().url("wss://dev.xyz.co.uk/xyz").build()
val listener: EchoWebSocketListener = EchoWebSocketListener()
val ws: WebSocket = client.newWebSocket(request,listener)
client.dispatcher().executorService()
private inner class EchoWebSocketListener : WebSocketListener() {
private var norMAL_CLOSURE_STATUS: Int = 1000
override fun onopen(webSocket: WebSocket,response: Response) {
Log.d("onopen-----","Socket connected!!!!!")
webSocket.send("[5,\"driver106apikey\"]");
webSocket.close(norMAL_CLOSURE_STATUS,"GoodBye!!")
}
override fun onMessage(webSocket: WebSocket,text: String) {
Log.d("onMessage-----","Socket connected!!!!!")
Log.d("onMessage String-----",text)
output("Receiving------ "+ text)
}
override fun onMessage(webSocket: WebSocket,bytes: ByteString) {
Log.d("onMessage-----","Socket onmessage!!!!!")
output("Receiving------ "+ bytes.toString())
}
override fun onClosing(webSocket: WebSocket,code: Int,reason: String) {
Log.d("onClosing-----","Socket closing!!!!!")
webSocket.close(norMAL_CLOSURE_STATUS,null)
output("Closing : "+ code + "/" + reason)
}
override fun onFailure(webSocket: WebSocket,t: Throwable,response: Response?) {
Log.d("onFailure-----","FAILURE")
Log.d("onFailure-----",t.message)
}
}
这就是数据在网络中发送的方式
1. When you send data you send in this format :
function clickBtn() {
var data = {
event: 0,data: {
lat: 123.2123,lng: 22.5543,status: 1
}
}
conn.publish('driver106apikey',data);
};
但是尝试在android中使用键值发送失败。
val formBody: RequestBody = FormBody.Builder()
.add("driver106apikey","{
"event": 0,"data": {
"lat": 123.2123,"lng": 22.5543,"status": 1
}
}")
.build()
Errrr在Android中显示
FAILURE预期的HTTP 101响应,但为'426否 Sec-WebSocket-Protocols请求支持'
这是通过浏览器发送数据的方式。
解决方法
似乎OkHttp不支持WAMP协议。我建议切换到Autobahn|Java或类似的库。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。