【发布时间】:2019-07-14 00:41:39
【问题描述】:
我想知道 Scarlet web socket 库是否有 java 实现。
@EchoBotScope
@Component(modules = [(EchoBotComponent.EchoBotModule::class)], dependencies = [(EchoBotComponent.Dependency::class)])
interface EchoBotComponent {
fun inject(echoBotFragment: EchoBotFragment)
interface Dependency {
fun application(): Application
}
@Component.Builder
interface Builder {
fun dependency(dependency: Dependency): Builder
fun build(): EchoBotComponent
}
@Module
class EchoBotModule {
@Provides
@EchoBotScope
fun provideOkHttpClient(): OkHttpClient = OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BASIC))
.build()
@Provides
@EchoBotScope
fun provideLifecycle(application: Application, loggedInLifecycle: LoggedInLifecycle): Lifecycle =
AndroidLifecycle.ofApplicationForeground(application)
.combineWith(loggedInLifecycle)
@Provides
@EchoBotScope
fun provideEchoService(client: OkHttpClient, lifecycle: Lifecycle): EchoService {
val scarlet = Scarlet.Builder()
.webSocketFactory(client.newWebSocketFactory("wss://demos.kaazing.com/echo"))
.lifecycle(lifecycle)
.addMessageAdapterFactory(BitmapMessageAdapter.Factory())
.addStreamAdapterFactory(RxJava2StreamAdapterFactory())
.build()
return scarlet.create()
}
}
interface ComponentProvider {
val echoBotComponent: EchoBotComponent
}
}
如何自定义demo app来制作自己的okhttp WebSocket客户端?
【问题讨论】: