Приложение Java для "пересылки" данных из TCPSocket в WebSocket? - PullRequest
1 голос
/ 04 ноября 2011

Я немного растерялся, надеюсь, у кого-то есть подсказки для меня.

Мне нужно получить некоторые данные из TCPSocket (который я не могу изменить) на HTML5 / JavaScript-сайт, «работающий» наiPad.

Несколько вещей, я думаю, я понял:- JavaScript не поддерживает простые TCPSockets, как и HTML5- JavaScript поддерживает WebSockets (var socket = new WebSocket ...) o_O- Java изначально не поддерживает WebSockets- Каждый край сети рекомендует "jWebSocket" для реализаций Java WebSocket- Тем не менее, jWebSocket не является чем-то вроде библиотеки, которую я использую в своем Java-приложении, например, в очень сыром псевдокоде:

ClientSocket tcpSocket = new ClientSocket(whatever);

WebSocket webSocket = new WebSocket(whatever);

tcpSocket.connectToTCPServer();
webSocket.acceptClientConnection();

data = tcpSocket.receive();

processedData = processData(data);

webSocket.send(processedData);

Правильно?

ЧТО ради любви к Богу, тогдакратчайший способ реализовать нечто подобное представленному выше?Где эта легкая легкая связь Web 2.0, о которой говорит вся сеть?Честно говоря, мне не нужно скачивать и собирать весь этот jWebSocket-Maven-Projekt?

Заранее большое спасибо, Андреас

1 Ответ

1 голос
/ 04 ноября 2011

Если Java на самом деле не является жестким требованием, то простым решением будет использовать websockify , который предназначен именно для случая проксирования / соединения между WebSockets и необработанными сокетами TCP.Websockify - это простой сервер Python.

Одна из проблем, с которыми сталкиваются адреса websockify, заключается в том, что многие реализации браузера в дикой природе еще не поддерживают изменения API WebSocket для поддержки двоичных данных (и при подключении к обычному TCPсервер, то вы, вероятно, должны иметь возможность отправлять / получать двоичные данные).Websockify справляется с этим путем кодирования / декодирования данных base64 в клиент WebSocket и из него.Включенный файл include / websock.js позволяет отправлять и получать двоичные данные (как обычный байтовый массив Javascript).См. websock.js API .

Отказ от ответственности: я сделал websockify.

...