0
我使用2個TCP連接連接到供應商API。在一個連接上,我發出同步請求;第二個連接用於API推出響應。以斯卡拉風格管理2個連接
我目前使用ganymed-ssh-2庫來建立與服務器的兩個連接。我在進行連接時執行握手:在建立同步連接時,我收到一個令牌,我使用該令牌在異步通道上進行身份驗證。我目前只需打印一次認證後在異步通道上收到的所有消息。
我應該採取哪些步驟來繼續在同步通道上發出請求(現在簡單地使用stdin),並繼續從stdout上的異步通道打印響應?我不確定我是否應該使用Actor(我一直在努力尋找可以從輸入流中讀取並相應地解析消息的Actor的示例),還是我應該使用其他一些Scala-esque構造。
class SyncConnection {
def connect(): String = {
// Establish connection
...
val out = new PrintStream(outputStream)
val in = new BufferedSource(inputStream).getLines()
// Make login request, receive token
out.println("loginRequest")
out.flush()
val token = in.next()
token
}
}
class AsyncConnection {
def connect(token: String) {
// Establish connection
...
val in = new BufferedSource(inputStream).getLines()
val out = new PrintStream(outputStream)
// Authenticate using token
out.println(token)
out.flush()
// Print all messages received on input stream
for (line <- in) println(line)
}
}