簡體   English   中英

Netty3:Android上具有SSL的WebSockets

[英]Netty3: websockets with SSL on Android

我決定描述使用Netty庫遇到的問題。 目前,我在Android客戶端上工作,該客戶端通過websocket發送和接收數據,這就是選擇Netty庫的原因。

現在我有了NIO機制,該機制可以使用websockets處理SSL連接。 一切運行良好,可能會遇到一些不尋常的情況-當“寫入”操作的ChannelFutureListener絕不會調用“ operationComplete”后,Android客戶端和服務器同時向彼此發送數據(每秒很少請求)時。

我進行了一些研究,發現信息表明,如果ssl握手未完成,則可能會發生這種問題。 但是,我認為這種情況不適用於我的情況,只有在這種極端情況下,才能正確接收和發送數據。 您是否知道我應該在哪里尋找解決此問題的方法?

我的研究:起初,我發現Netty4上也出現此問題,但不幸的是Netty3沒有像'writeAndFlush'這樣的頻道方法。

然后,我發現了一個錯誤: 問題1823 ,已通過此提交修復,並在此處進行了描述,該錯誤可能與我的問題密切相關。 不幸的是,我在構建Netty到jar時遇到了問題-HashedWheelTimer遇到了問題,我每次使用它時都會調用NoClassDefFoundError。 是我構建此項目的方式有問題還是該分支的內部問題? 不幸的是,最新的Netty on Maven存儲庫(3.9.0.Final)不包含此修復程序。

我觀察到我的應用程序有奇怪的行為:當未調用“ operationComplete”並且關閉通道(channel.close())時,每個未完成的“寫”操作都很少收到“ operationComplete”調用。 此外,當我觀察池中線程的狀態時,發生問題后,負責通道的線程處於“ WAIT”狀態。 我不確定結果是什么,原因是什么。

我將非常感謝任何想法我能做什么。

PS。 遷移到Netty4 / 5是最新考慮的選項-我想這將花費我很多時間。

Krzysztof Skrzynecki

根據此“ Android上帶有SSl的Netty3 WebSockets”問題的主要問題,Netty庫本身沒有任何問題。 我發現這是一個帶有共享標志的布爾值標志的經典讀寫器問題

我走錯了路,因為我發現其他用戶也有類似的問題,這就是我認為Netty是原因的原因。

對於想要在Android上使用Netty的其他用戶,我只有一個詞-一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM