Jetty - В чем разница между WebSocket.sendMessage (данные String) и void sendMessage (кадр байта, данные String)? - PullRequest
1 голос
/ 17 сентября 2010

Я играю с веб-сокетами и Jetty 7.1.6.v20100715.

У меня есть несколько вопросов, в основном из-за недостатка информации / объяснений по поводу этих методов.

1st)Для чего нужен байт в sendMessage (фрейм байта, данные String).

2nd) Есть ли причина для отказа outbound.sendMessage (string), если он вызывается из метода WebSocket.onConnect ()?

Также, есть ли хорошее объяснение реализации Jetty и как ее использовать?

http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/websocket/WebSocket.html

Спасибо

1 Ответ

2 голосов
/ 23 сентября 2010

Документация Jetty "в основном отсутствует" ... Я думаю, что лучший способ использовать ранние WebSockets - это прочитать спецификацию и отметить, что вы можете отправлять только строки Unicode через соединение WebSocket.в настоящее время.

Чтобы ответить на ваши вопросы:

  1. Этот байт является "типом кадра", который вы собираетесь отправить.В настоящее время для строк Unicode определен только тип фрейма, поэтому вы можете просто использовать метод sendMessage(String).По моему мнению, методы send* помимо упомянутого не должны быть общедоступными, чтобы избежать путаницы, но это верно для многих методов в API Jetty, и, похоже, их это не волнует.Кажется, что он подготовлен для отправки двоичных данных, но AFAIK не существует браузера, который бы поддерживал что-либо, кроме сообщений Unicode, поэтому на практике это бесполезно.

  2. Насколько мне известно, все должно быть в порядке, но отсутствие документации со стороны Jetty делает это рискованным делом.Вот почему я выбрал отправку первого сообщения от клиента на сервер для запуска протокола, который работает нормально.

(Обратите внимание, что мои знания WebSockt имеют возраст ~ 6 месяцев иэта тема развивается очень быстро)

...