Ответ 1
Как автор, я предлагаю попробовать реализацию SocketIO на Java:
https://github.com/mrniko/netty-socketio
Стабильная и готовая lib.
Я хотел использовать socket.io для переноса данных с сервера на браузер, но проект представляет собой java tomcat one, и в Github реализовано множество реализаций для реализации сервера socket.io
. Большинство из них говорят, что они устарели или лучше доступны. Может кто-нибудь предложить мне хорошую реализацию.
И я вижу много демонстрационного и примерного кода о вещании с socket.io
. Мое требование состоит в том, чтобы раздвигать разные сообщения для разных клиентов. Может ли кто-нибудь указать мне какую-нибудь хорошую демонстрацию или учебник, посвященный таким материалам?
Спасибо
Как автор, я предлагаю попробовать реализацию SocketIO на Java:
https://github.com/mrniko/netty-socketio
Стабильная и готовая lib.
Мы используем в производстве этот: Socket.IO-Java. Мы настроили его по нашим требованиям. Но в основном случае он работает достаточно хорошо.
Мой коллега поделился индивидуальной версией github. Мы используем Jetty 8, могут возникнуть проблемы с другими контейнерами сервлетов. Кроме того, мы рассматриваем использование только реализации WebSocket, когда XP не поддерживается Microsoft.
Вы можете попробовать следующее: https://github.com/codeminders/socket.io-server-java
Эта реализация свободно основана на старой библиотеке Socket.IO-Java, упомянутой в других ответах.
Он поддерживает клиентов Socket.IO 1.0+. Транспортировка websocket реализована с помощью Jetty 9, но нет никакой зависимости от Jetty для основной части библиотеки. Не нужно очень сложно реализовать перенос websocket с помощью Tomcat, если это необходимо.
Я попытался сохранить API похожим на API-интерфейс Node.JS Socket.IO. Итак, чтобы отправить сообщение в конкретный сокет, вам нужно позвонить socket.emit()
Вот небольшой фрагмент кода, который вызывается в вашем сервлете SocketIO:
on(new ConnectionListener() {
public void onConnect(Socket socket)
{
try
{
socket.emit("welcome", "Welcome to Socket.IO Chat!");
}
catch (SocketIOException e)
{
socket.disconnect(true);
}
}
});