【发布时间】:2018-02-07 07:36:49
【问题描述】:
我有两个问题
1)我的项目包含dagger2,retofit2,kotlin v1.0.21,rxJava2,OkHttp3 我想在我的项目上实现SocketIO 我应该如何实现?
2)我尝试了几种方法但无法连接socketIO所以我尝试在给定代码下面的示例代码但仍然无法连接套接字..请提前帮助thanx
package com.easymakers.myapplication
import android.os.Bundle
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity
import android.view.View
import io.socket.client.IO
import io.socket.client.Socket
import io.socket.emitter.Emitter
import kotlinx.android.synthetic.main.activity_main.*
import javax.net.ssl.SSLContext
class MainActivity : AppCompatActivity() {
private var socket : Socket? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
fab.setOnClickListener { view ->
connect(view)
// connect1()
}
}
private fun connect(view : View) {
val opts = IO.Options()
opts.port= 5000
opts.reconnection = false
// opts.query =
socket = IO.socket("https://192.170.1.21",opts)
socket?.connect()
?.on(Socket.EVENT_CONNECT, {
Snackbar.make(view, "Socket connected", Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
})
?.on(Socket.EVENT_DISCONNECT, { println("disconnected") })
}
private fun connect1(){
val sc = SSLContext.getInstance("SSL")
sc.init(null, null, null)
val opts = IO.Options()
opts.port = 3000
opts.secure = true
opts.forceNew = true
opts.reconnection = true
val socket = IO.socket("https://103.69.190.10",opts)
socket.on("connection", Emitter.Listener {
println("Connected")
socket.emit("foo", "hi")
socket.disconnect()
}).on("event", Emitter.Listener { }).on(Socket.EVENT_DISCONNECT, Emitter.Listener { })
socket.connect()
}
}
【问题讨论】: