これはちょっと疑問ですが、正直なところ、ASCIIコードを設定せずにそれを理解することはできません。文字マッパーを自分で作っていますが、これは正しい方法ではないと思います。Akka ByteStringをStringに変換するには?
現在、私は別のクライアントとサーバーエンティティを使用するScalaとAkkaを使って "チャットアプリケーション"を作っています。クライアントはサーバーに接続し、メッセージを送信し、サーバーはそれを使って何かを行います。
私はメッセージの送信を手に入れましたが、今はメッセージのサーバー側を読んでいません。私はメッセージを受け取るたびに、メッセージの文字のASCII値を含むByteStringを取得します。このByteStringを実際のStringに変換するにはどうすればよいですか?
関連するコード(サーバー側):サーバーの
package chatapp.server
import java.net.InetSocketAddress
import akka.actor.{Actor, ActorSystem}
import akka.io.Tcp._
import akka.io.{IO, Tcp}
/**
* Created by Niels Bokmans on 30-3-2016.
*/
class ServerActor(actorSystem: ActorSystem) extends Actor {
val Port = 18573
val Server = "localhost"
IO(Tcp)(actorSystem) ! Bind(self, new InetSocketAddress("localhost", Port))
def receive: Receive = {
case CommandFailed(_: Bind) =>
println("Failed to start listening on " + Server + ":" + Port)
context stop self
actorSystem.terminate()
case Bound(localAddress: InetSocketAddress) =>
println("Started listening on " + localAddress)
case Connected(remote, local) =>
println("New connection!")
sender ! Register(self)
case Received(data) =>
println(data)
}
}
画像は(あなたが見ることができるように、それが接続を受け入れる - >新しい接続を受け取る - >接続からメッセージを受信):
クライアントの画像が(サーバーに接続し、「testmessage」メッセージを送信します)
注意を。たとえば、 'ByteString(192).decodeString(ByteString.UTF_8)' –