android - 我无法连接到信号器

标签 android kotlin signalr

我正在尝试连接到信号器,但它说失败。我正在输入正确的网址, 我想将其隐藏在这段代码中。Bağlantı başarısız。 -> 这意味着英语连接错误。

可以与Postman建立连接

这个问题有什么解决办法吗? 预先感谢您的回答

class WebSocketActivity : AppCompatActivity() {
private lateinit var hubConnection: HubConnection

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_web_socket)

    connectToSignalR()
}

private fun connectToSignalR() {
    val hubUrl = "https://myurl" // SignalR sunucu URL'si

    hubConnection = HubConnectionBuilder.create(hubUrl)
        .withTransport(TransportEnum.WEBSOCKETS) // WebSockets veya LongPolling seçeneği
        .build()


    // "ReceiveMessage" adlı hub metodunu dinle
    hubConnection.on("ReceiveMessage") { ->
        Log.e("SignalR", "Mesaj al")
    }

    hubConnection.onClosed { exception ->
        if (exception != null) {
            // Bağlantı hatası oluştu, exception içinde hatayı kontrol edebilirsiniz
            Log.e("SignalR", "Connection closed with error: ${exception.message}")
        }
    }

    // Bağlantıyı başlat
    try {
        hubConnection.start()
        if (hubConnection.connectionState == HubConnectionState.CONNECTED) {
            Log.d("SignalR", "Bağlantı başarıyla tamamlandı.")

            // "restaurantId" sorgu parametresini gönder
            val restaurantId = "oclv"
            hubConnection.send("restaurantId", restaurantId)
        } else {
            Log.e("SignalR", "Bağlantı başarısız.")
        }
    } catch (e: ExecutionException) {
        e.printStackTrace()
        Log.e("SignalR", "Bağlantı hatası: ${e.message}")
    } catch (e: InterruptedException) {
        e.printStackTrace()
        Log.e("SignalR", "Bağlantı hatası: ${e.message}")
    }
}

override fun onDestroy() {
    super.onDestroy()
    hubConnection.stop() // Bağlantıyı kapat
}
}

最佳答案

也试试这个。您需要异步监听。我希望它能起作用。

hubConnection.start().doOnComplete {
        Log.d("SignalR", "Bağlantı başarıyla tamamlandı.")
    }.doOnError {
        Log.e("SignalR", "Bağlantı başarısız.")
    }.subscribe()

关于android - 我无法连接到信号器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77272369/

相关文章:

enums - 是否可以在 kotlin 中使用 enum ordinal 而不显式调用 ordinal?

java - 为什么 Kotlin sortBy() 似乎以相反的顺序运行?

java - 在请求权限之前 Android 应用程序已关闭?怎么解决呢?

eclipse - 如何在Eclipse中调试Kotlin Spring Boot App?

c# - 使用带有 MVC4 的高级集线器 api 的 SignalR 错误 - "/echo/negotiate 404 Not Found Error"

asp.net-mvc - 在集线器、SignalR 之外获取 connectionId

signalr - 如何限制SignalR服务器连接?

android - 如何限制用户在编辑文本上放置两个以上的小数点

Android Gradle - 如何包含根项目中的 Assets ?

单击 fragment 中的按钮时,Android 应用程序崩溃