Рукокоренное рукопашение WebSocket не удалось в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Рукокоренное рукопашение WebSocket не удалось в Java

Сообщение Anonymous »

Итак, я пытаюсь проанализировать веб -сайт, который использует WebSocket для отправки данных клиентам. From what I've read:
  • Link 1
  • Link 2
I understood that for creating a connection, I need to send a special http request to server and ot will retrieve some data which i use to access the channel.

Что я сделал: < /p>


Создал http -запрос < /p>

`URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// optional default is GET
con.setRequestMethod("GET");

//add request header
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Host", "www.example.com");
con.setRequestProperty("Upgrade", "websocket");
con.setRequestProperty("Connection", "upgrade");
con.setRequestProperty("Origin", "https://example.com");
con.setRequestProperty("Sec-WebSocket-Extensions", "x-webkit-deflate-frame");
con.setRequestProperty("Sec-WebSocket-Key", "QkWkChtTGpaZL5PkOMaRtg==");
con.setRequestProperty("Sec-WebSocket-Version", "13");
con.setRequestProperty("User-Agent", "Mozilla/..;
< /code>

`< /p> < /li>
< /ul>

И я прочитал ответ с кодом 200 (не 101, который должен быть). < /p>

Вопросы: < /p>

wysecke? (В примере взято из Firebug, на самом деле все заголовки) < /li>
< /ol>

1.1. Что можно сделать больше? < /P>

1.2. Та же ссылка от HTTP должна использоваться для доступа к WebSocket? Только с WSS вместо HTTPS?WebSocketContainer container = ContainerProvider.getWebSocketContainer();
Session session = container.connectToServer(ClientEndpoint.class, buildCEC(), new URI("wss://async.example.com/socket.io/1/?t=" + System.currentTimeMillis()));< /code> < /p> < /li>
я попробовал в buildcec (), чтобы вставить заголовки к подключению к серверу.

clientendpointconfig config = clientendpointconfig.builder.create (). build ();
configurator confignfig.getconfigurator ()
< /> < />
configurator = confignfigurator (); />`Map headers = new HashMap();

headers.put("Connection", Arrays.asList("keep-alive", "Upgrade"));
headers.put("Sec-Websocket-Extensions", Arrays.asList("x-webkit-deflate-frame"));
headers.put("Sec-Websocket-key", Arrays.asList("cx36sHrtuW9HZAaB6kKa/Q=="));
headers.put("Sec-Websocket-Version", Arrays.asList("13"));
headers.put("Upgrade", Arrays.asList("websocket"));
headers.put("User-Agent", Arrays.asList("Mozill..."));

conf.beforeRequest(headers);

return config;`
< /code> < /li>
< /ul>

Вопросы < /p>


Мое суждение хорошим в случае, если я выпускаю это и получаю 101 статус от запроса на обновление http? Я не знаю JavaScript, я хочу сделать этого клиента в Pure Java с JSR-356. Я сделал небольшие примеры с WebSockets, но я не могу найти хорошего клиента, с заголовками и более сложным рукопожатием. < /Li>
Можно ли подключиться к неизвестному серверу, не зная всех деталей? Для работы с подключением к WebSocket от JSR356.

Подробнее здесь: https://stackoverflow.com/questions/206 ... ed-in-java

Вернуться в «JAVA»