تأمين شبكات الويب مع Lagom

1

من خلال إطار lightbend Lagom ، أحاول الاتصال بـ apiocket webi من Binance.

ومع ذلك ، ما زلت أتلقى الخطأ التالي عند الاتصال:

400 The plain HTTP request was sent to HTTPS port

هل من الممكن من Lagom الاتصال بخدمة Websocket آمنة؟ إذن مع WebSocketClient؟ لدي الكود التالي:

trait BinanceStreamingService extends Service {
    def depthStream(symbol: String): ServiceCall[NotUsed, Source[DepthEvent, NotUsed]]

    override final def descriptor = {
        import Service._
        import me.koopal.crypto.api.BinanceModelsMarshallers._

        named("depth-stream")
            .withCalls(
                restCall(GET, "/ws/:[email protected]", depthStream _)
            )
     }
} 

private val binanceStreamApplication = new LagomClientApplication("binance-ws") with StaticServiceLocatorComponents with AhcWSComponents {
    override def staticServiceUri = URI.create("wss://stream.binance.com:9443")
}

override def stream = ServiceCall { _ =>
    binanceStreamClient.depthStream("bnbbtc")
        .invoke()
        .map { s =>
            s.runForeach(e => println(e))
        }.onComplete {
            case Success(x) => println("success", x)
            case Failure(ex) => println("failure", ex)
        }

        Future.successful("test")
}

يمكن العثور على مثال رمز التخريب هنا: https://github.com/stijnkoopal/lagom-binance-websockets

2 الاجابة

0

نظرًا لأن Lagom لا يدعم TLS حتى الآن ، فأنت بحاجة إلى التبديل إلى خدمة توفر دعم Websocket من جانب العميل على TLS ، وهناك العديد من SaaS المتاحة ، كما هو مذكور في الإجابة الأولى.
يمكنك استخدام Ably ، ويوفر دعم TLS ولديه أداء جيد حقًا. التنفيذ سهل حيث أن لديهم وثائق جيدة جدًا. ألقِ نظرة عليه ، إذا كان يحل غرضك.

:مؤلف
0

عميل WebSocket من Lagom لا يدعم TLS بعد. توجد مشكلة مفتوحة لإعادة تنفيذ العميل باستخدام Akka HTTP ، والتي ستمكن دعم TLS: https://github.com/lagom/lagom/issues/895

في هذه الأثناء ، فإن أفضل طريقة هي تنفيذ عميلك باستخدام Akka HTTP Client-Side WebSocket Support أو مكتبة عميل WebSocket أخرى تدعم الاتصالات الآمنة.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام