Używam Spring-Websockets 4.2 z SockJS.Częściowe wiadomości z SockJS w Spring-Websockets 4.2
Ponieważ wiadomości odbierane przez klientów mogą być dość duże, chciałbym użyć częściowych wiadomości. Moja podklasa TextWebSocketHandler zastępuje standardPartialMessages, aby zwracać wartość true. Ponieważ jednak SockJsWebSocketHandler utworzony przez Spring nie obsługuje częściowych wiadomości, nadal pojawia się błąd code=1009, reason=The decoded text message was too big for the output buffer and the endpoint does not support partial messages
.
W celu obejścia tego problemu zwiększyłem rozmiar bufora do 1 MB zgodnie z opisem here, ale ponieważ muszę obsługiwać dość dużą liczbę klientów (~ 2000 w tym samym czasie), wymaga to zbyt dużo pamięci.
Czy istnieje sposób na wykorzystanie częściowych wiadomości z SockJS?
Czy byłeś w stanie rozwiązać ten problem. Mam także do czynienia z tym samym problemem i nie mogłem znaleźć rozwiązania? Również liczby wymienione w 'container.setMaxTextMessageBufferSize (16384)', jest to w bitach, bajtach kbs lub co? – BiJ
Nie, niestety nie. Sami zakończyliśmy wdrażanie częściowego przesyłania wiadomości, dzieląc się na nadawcę i ponownie składając w odbiorniku. Zestaw setMaxTextMessageBufferSize znajduje się w bajtach AFAIK. – Jan
Czy możesz użyć lepkiego równoważnika obciążenia podobnego do sesji, aby podzielić wiadomości? Wygląda na to, że musisz zaimplementować strumień reaktywny lub użyć odpowiedniej wielkości kolejki komunikatów poza zwykłymi gniazdami do obsługi wiadomości. –