RSocket starter を使用して springboot アプリケーション サンプルを選択するだけです。 ビルドしてから、実行可能な jar を実行すると、次のログが得られます。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.1.RELEASE)
2019-12-04 09:45:20.985 INFO 12928 --- [ main] com.example.DemoApplication : Starting DemoApplication on XXX with PID 1234 (demo/target/classes started by me in ~/demo)
2019-12-04 09:45:20.987 INFO 12928 --- [ main] com.example.DemoApplication : No active profile set, falling back to default profiles: default
2019-12-04 09:45:21.761 INFO 12928 --- [ main] com.example.DemoApplication : Started DemoApplication in 1.172 seconds (JVM running for 2.378)
Process finished with exit code 0
問題は、Springboot のメイン スレッドが RSocket リクエストを待たずにすぐに停止することです。問題はRSocketサーバーが起動していないことだと思うので、次のようにRSocketコントローラーを追加しようとしました:
@Controller
public class DemoController {
@MessageMapping("retreiveSomeData")
public Mono<Data> retreiveAccount(String criteria) {
return Mono.just(new Data());
}
}
同じ結果です^^
SpringBoot で RSocket を使用している人は、Springboot スレッドを強制的に待機させる「美しい」方法を見つけていますか?