Natknąłem się na this blog post, które okazało się niesamowite i pouczające, pokazując, jak tworzyć ramkę o stałej długości z wiadomości tekstowych wysyłanych do serwera gniazd Akka IO. Pracowałem z biblioteką open source, którą znalazłem here called ScalaBuff, która tworzy ładną cienką warstwę na wierzchu obiektów bufora protokołu.Komunikaty o buforach protokołów za pośrednictwem Akka IO i gniazd
Problem polega na tym, że dostosowuję autora bloga (nie mogę znaleźć odnośnika do bezpośredniego kontaktu z nim), aby pobrać długość (4-bajtową sekwencję), a następnie tablicę bajtów protobuf. Mogę się martwić o ustalenie, która wiadomość jest na drucie później, teraz chcę tylko, żeby kod zadziałał z jedną przykładową wiadomością.
Mój problem polega na tym, że mam problem z przekonwertowaniem kodu Akka IO z ciągnięcia akka ByteStrings na możliwość wysyłania i pobierania surowych bajtów z komunikatu protobuf. Jest to symptom mojego braku znajomości serwerów gniazd przy użyciu Akka IO. Mogę dostać się do bajtowej reprezentacji mojego obiektu protobuf (Zombie Sighting), ale nie mogę pobrać próbki z bloga do pracy na tablicach bajtów zamiast ciągów.
Jeśli ktoś ma jakąś radę, przykładowy kod lub jakieś informacje, jak dostać się z punktu A (wyżej wymieniony blog) do punktu B (klient gniazda Akka IO, który wysyła komunikat protobuf do gniazda Akka IO serwer .. Myślę, że mam klienta działającego ... może), byłoby niesamowite.
Okazało się, że mój problem nie miał nic wspólnego z Akka IO ani nawet Scala. Kiedy wysyłałem, wysyłałem to, co równało się "toString" reprezentacji tablicy bajtów protobuf, zamiast rzeczywistej tablicy bajtów przekonwertowanej poprawnie na łańcuch. –