#websocket #handshake
#websocket #рукопожатие
Вопрос:
Я успешно завершил свой тест websocket, но я хочу знать о рукопожатии Websocket. В моем веб-клиенте я использовал приведенный ниже код для запуска связи с websocket
var ws = new WebSocket("ws://example.com/foobar");
ws.onmessage = function(evt) { /* some code */ }
ws.send("Hello World")
На моем веб-сервере (используется Java) Я использовал Jetty lib и реализовал сервер, как показано ниже:
public class MyWebSocket implements WebSocket.OnTextMessage {
public void onOpen(Connection connection)
{
}
public void onMessage(byte frame, byte[] data,int offset, int length)
{
}
public void onMessage(String data)
{
}
public void onClose(int code, String message)
{
}
}
Связь с веб-сокетом работает нормально для меня, я ничего не сделал для рукопожатия. Как это работает?
Ответ №1:
Если вы используете библиотеку, подобную Jetty, повторяющиеся вещи, такие как рукопожатие, выполняются за кулисами, так что вам не нужно об этом заботиться. В этом и заключается идея использования библиотек — вы можете писать простой код, не изобретая велосипед.
Если вы хотите реализовать рукопожатие самостоятельно, возможно, вам захочется повозиться без библиотеки и поиграть с тем, как это реализовать «едва».
Для Jetty вы можете просмотреть код рукопожатия здесь, а анализ ключей выполняется здесь.