package Ġcom . g itee . xu ank aic at . k mn kt . aliyun iot . utils Ċ Ċ import Ġcom . g itee . xu ank aic at . k mn kt . socket . IM qtt Socket Ċ import Ġcom . g itee . xu ank aic at . k mn kt . aliyun iot . al ink . A link Base Ċ import Ġcom . g itee . xu ank aic at . k mn kt . aliyun iot . al ink . A link Result Ċ import Ġcom . g itee . xu ank aic at . k mn kt . socket . send And Receive Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . encode ToString Ċ import Ġkotlinx . serialization . json . Json Ċ Ċ type alias ĠOn Receive A link Result Func Ġ= Ġ( A link Result ) Ġ-> ĠUnit Ċ type alias ĠOn Receive A link Request Func Ġ= Ġ( A link Base ) Ġ-> ĠUnit Ċ Ċ /** Ċ Ġ* Ġ åıĳéĢģ å¹¶ æİ¥æĶ¶ al ink æ¶Īæģ¯ Ċ Ġ* Ġ@ see ĠA link Result Ċ Ġ*/ Ċ inline Ġfun ĠIM qtt Socket . send And Receive A link ( ĊĠĠĠ ĠmessageId : ĠString , ĊĠĠĠ Ġtopic : ĠString , ĊĠĠĠ Ġsend Obj : ĠA link Base , ĊĠĠĠ Ġrepeat : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġcross inline Ġon Receive : ĠOn Receive A link Result Func , Ċ ) Ġ= Ġsend And Receive ( topic , Ġtopic Ġ+ Ġ"_ reply ", ĠJson . encode ToString ( send Obj )) Ġ{ Ġv Ġ-> ĊĠĠĠ Ġval Ġresult : ĠA link Result Ġ= ĠJson . decode FromString ( v ) ĊĠĠĠ Ġif ( result . id Ġ!= ĠmessageId ) Ġreturn @ send And Receive Ġtrue ĊĠĠĠ Ġon Receive . invoke ( result ) ĊĠĠĠ Ġreturn @ send And Receive Ġrepeat Ċ }