Как стать автором
Обновить
13
@Metalfireread⁠-⁠only

Пользователь

Отправить сообщение

Организация вебсокетного взаимодействия с приложением Spring

Время на прочтение12 мин
Количество просмотров12K
Скажу сразу, что стандартная реализация такого взаимодействия — существует.

Однако, поскольку эта статья — продолжение темы «Простой вызов удалённых сервисных методов в одностраничных приложениях», здесь будет приведена альтернативная схема взаимодействия, необходимая для замены ajax на вебсокеты, в контексте подхода (jrspc), описанного в вышеупомянутой теме.

В первой статье — был описан механизм вызова сервисных методов, с использованием ajax.

В этой статье — описано, как можно реализовать данный механизм, с заменой ajax на вебсокеты, не меняя код бизнес-логики приложения.

Такая замена даёт более быстрое соединение(тесты в конце), экономию серверной памяти, и добавляет возможность вызывать методы клиента с сервера.

Для демонстрации, написано небольшое чат-приложение, с исходным кодом на гитхабе.
на примере разбора которого, я попытаюсь объяснить, как реализованы клиентская и серверная части такого взаимодействия.
Приложение работает на сервере tomcat 7.042.
Поддерживает https и wss (сертификат неподтверждённый), и не ведёт логов на сервере.
разобраться
Всего голосов 19: ↑17 и ↓2+15
Комментарии1

Простой вызов удалённых сервисных методов в одностраничных приложениях

Время на прочтение3 мин
Количество просмотров9.2K
В этой статье, я хочу поделиться своим подходом в организации клиент-серверного взаимодействия, в одностраничных браузерных приложениях с серверной частью на Java.

Сокращённо, я называю этот подход «Json Remote Service Procedure Call» — JRSPC. (Не очень благозвучно, возможно, но из песни слова не выкинешь.)

Применение jrspc — позволяет отказаться от использования слоёв определений интерфейсов сервисов на клиенте и сервере, что сокращает количество кода, упрощает его рефакторинг, и снижает вероятность появления ошибок.
При использовании этого подхода — мы можем писать только код, отвечающий за бизнес-логику,
не нужаясь в дополнительном коде, при определении нового бизнес-метода.

Например, на сервере, определение бизнес-метода выглядит так:

@Component("testService")
public class TestService{
    @Remote
    public String testMethod(Long userId, String role, boolean test,
            List<User> users, User user){    
            ...
           return "ok"; 
    }   
}    


а его вызов на клиенте — так:

var params = [userId, role, true, [{id:1, login:"111"},  {id:2, login:"222"} ], {id:3, login:"333"}]
Server.call("testService", "testMethod",   params,  sucessCallback, errorCallback, controlWhichWillDisabledUntilResponse);	


Больше, при определении метода, нигде, никакого кода не пишется.

Как это работает
Всего голосов 10: ↑7 и ↓3+4
Комментарии20

Оптимизация вызовов функций из воркеров (web-workers)

Время на прочтение3 мин
Количество просмотров13K
Приветствую уважаемое Хабросообщество, и в качестве взноса в этот банк коллективного разума
— хочу поделиться своим опытом в работе с воркерами.

Воркеры (Web-workers), это технология, позволяющая запускать изолированные участки кода в отдельном потоке. Код из воркера не тормозит работу графического интерфейса, и выполняется быстрее, чем код на странице, что делает использование воркеров очень привлекательным, для ресурсоёмких расчётов, типа рисования графики или криптографии.

Кто ещё не встречался с этой технологией — здесь можно ознакомится с её основами.

Ниже, описан небольшой «лайфхак», который позволяет уменьшить количество кода, необходимого для вызова функций из воркера, если нужно вызывать больше одной функции.
Подробности
Всего голосов 29: ↑24 и ↓5+19
Комментарии26

Информация

В рейтинге
Не участвует
Откуда
Курган, Курганская обл., Россия
Зарегистрирован
Активность