クライアントを待ってServerSocket.accept()
から、次のように処理します。
val in = new BufferedReader(new InputStreamReader(socket.getInputStream()))
var line = in.readLine()
while (line != null) {
//...
line = in.readLine()
}
応答を送信するために、クライアントがヘッダーの送信を終了したことをどのように知ることができますか?
具体的には、次のヘッダーを意味します。
GET /マイチャット HTTP/1.1 ホスト: server.example.com アップグレード: ウェブソケット 接続: アップグレード Sec-WebSocket キー: x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Protocol: チャット Sec-WebSocket-バージョン: 13 オリジン: http://example.com
説明のように: http://en.wikipedia.org/wiki/WebSocket
私は試した:
if (line.contains("\r\n")) {
println("1")
}
if (line.contains("\r")) {
println("2")
}
if (line.contains("\n")) {
println("3")
}
しかし、うまくいきません...
うまくいったのはline.isEmpty()
. しかし、ストリームには何かが含まれている必要があり、すべての内容が false を返すため、奇妙です...