Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Есть такой ChannelInterceptor, с методом preSend:

@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {

    LOGGER.info("WEBSOCKETCHANNELINTERCEPTOR -> "+message.toString());

    StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);

    if (accessor != null && StompCommand.CONNECT.equals(accessor.getCommand())) {
        List<String> headers = accessor.getNativeHeader(AUTHORIZATION);
        accessor.setUser(websocketAuthenticationManager.authenticate(new JWTTokenAuthentication(tokenUtils.resolveToken(headers != null ? headers.get(0) : null))));

    }

    return message;
}


В случае любой ошибки при CONNECT-е я хочу отключить пользователя от вебсокета. как это сделать?
19 фев 19, 23:40    [21814958]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
Есть такой ChannelInterceptor, с методом preSend:

@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {

    LOGGER.info("WEBSOCKETCHANNELINTERCEPTOR -> "+message.toString());

    StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);

    if (accessor != null && StompCommand.CONNECT.equals(accessor.getCommand())) {
        List<String> headers = accessor.getNativeHeader(AUTHORIZATION);
        accessor.setUser(websocketAuthenticationManager.authenticate(new JWTTokenAuthentication(tokenUtils.resolveToken(headers != null ? headers.get(0) : null))));

    }

    return message;
}


В случае любой ошибки при CONNECT-е я хочу отключить пользователя от вебсокета. как это сделать?


В интерфейс загляни там должно быть, что нибудь на вроде метода onError
20 фев 19, 02:18    [21815019]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Sergunka, какой интерфейс?
20 фев 19, 11:29    [21815230]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop,
Сейчас при ошибке что происходит? Райзе проглатывается и все работает?
20 фев 19, 12:58    [21815323]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123, Сейчас, и по дефолту так, когда возникает ошибка сервак шлет клиенту сообщение ERROR, но соединение не рвет.
20 фев 19, 13:38    [21815371]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
Petro123, Сейчас, и по дефолту так, когда возникает ошибка сервак шлет клиенту сообщение ERROR, но соединение не рвет.
значит уровень ошибки не катастрофа. Нет нужды рвать. Дальше что сломалось?
20 фев 19, 14:30    [21815452]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Мое имхо, что перехватчики не могут рвать канал. Это не их компетенция. Они просто..... Подслушать и подправить.
20 фев 19, 14:45    [21815463]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
значит уровень ошибки не катастрофа. Нет нужды рвать. Дальше что сломалось?

А мне нужно разорвать соединение ибо если CONNECT адекватно не прошел то и юзера нет. А он мне нужен.
20 фев 19, 14:46    [21815464]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop,
А разорвав откуда юзверь появится? Это поможет?
20 фев 19, 14:49    [21815469]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Petro123,
Ну и решать, нужен юзверь или нет, это же БЛ и вполне возможно клиента дело.
20 фев 19, 14:50    [21815471]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Ну и если разорвать канал, клиент вообще ничего не узнает о проблеме. Логично?
20 фев 19, 14:52    [21815477]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
Sergunka, какой интерфейс?


Class ChannelInterceptor extends Interface

Обычное дело делаешь метод оверид на onError и в этом методе вызываешь слоз коннектион это базовый дизайн для любого ООП.

Если бы дал гитхаб или хотябы опубликовал заоголовок класса то можно было бы даже помочь. Но извини не у всех такая мощная чуйка, что там у тебя в коде написано.
20 фев 19, 19:32    [21815770]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Sergunka, тут такого нет. Это спринг поверх websocket-api.

Код выложить не могу, ибо подписал договор о неразглашении.
20 фев 19, 22:46    [21815877]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
Tsyklop,
А разорвав откуда юзверь появится? Это поможет?

А не надо что бы он появился. Надо разорвать и все.
20 фев 19, 22:47    [21815878]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
Ну и если разорвать канал, клиент вообще ничего не узнает о проблеме. Логично?

Нет. ему придет ошибка. Перед отключением придет ошибка.
20 фев 19, 22:47    [21815881]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
А какая решается в топике проблема?
20 фев 19, 23:44    [21815908]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
Sergunka, тут такого нет. Это спринг поверх websocket-api.

Код выложить не могу, ибо подписал договор о неразглашении.


https://github.com/SVyatkin/dragonfly-demo/blob/master/src/main/java/com/vyatkin/dragonfly/service/WebSocketServerEndPoint.java

Попробуй через аннотации @OnError и @OnClose примерно так должно выглядеть... вообще проблема не нова должен легко найти на https://stackoverflow.com


	/**
	 * @param session
	 *            - session object
	 * @param closeReason
	 *            - The reason of close of session
	 */
	@OnClose
	public void onClose(Session session, CloseReason closeReason) {
		logger.info("Server: Session " + session.getId() + " closed because of " + closeReason.toString()); 
		
    	// Remove session from the connected sessions set
    	pullConnections.remove(session);
	}

	/**
	 * @param session
	 *            - current session object
	 * @param t
	 *            - Throwable instance containing error info
	 */
	@OnError
	public void onError(Session session, Throwable t) {
		logger.error("Server: Session " + session.getId() + " error " + t.getMessage());
		
    	// Remove session from the connected sessions set
    	pullConnections.remove(session);
	}
20 фев 19, 23:57    [21815920]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Sergunka, я еще раз говорю - я использую вебсокеты в спринге (не чисто либу для сокетов). У спринга своя штука над websocket-api и я не сделаю того что предлагаете Вы.
21 фев 19, 11:25    [21816103]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
mayton
А какая решается в топике проблема?

как отрубить клиента от сокета со стороны сервака
21 фев 19, 11:25    [21816104]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
Tsyklop
mayton
А какая решается в топике проблема?

как отрубить клиента от сокета со стороны сервака

Это не проблема. Это ваше сиюминутное хотение.

Какая была настоящая бизнесовая проблема?
21 фев 19, 11:31    [21816112]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
mayton
Это ваше сиюминутное хотение
хорошо сказал). Ни одного слова лишнего)
21 фев 19, 11:37    [21816116]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Ясно. Закрыто
21 фев 19, 11:57    [21816141]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop,
Еще есть старое старое правило - закрывают ресурс там где его открывают.
Я конечно, бывает его нарушаю, но правило существует) имхо.
21 фев 19, 12:11    [21816156]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
Tsyklop
Ясно. Закрыто

Есть такой нудный документ. Называется "The WebSocket Protocol".
Почитай на досуге тут https://tools.ietf.org/html/rfc6455

Там должны быть ответы на основные вопросы. Подозреваю что не все браузеры точно его соблюдают.
Но убежден что проблема (если она существует) давно известна. Запротоколирована и на нее есть решение.
Возможно в части конфигураций.
21 фев 19, 12:47    [21816206]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16265
mayton
Tsyklop
Ясно. Закрыто

Есть такой нудный документ. Называется "The WebSocket Protocol".
Почитай на досуге тут https://tools.ietf.org/html/rfc6455

Там должны быть ответы на основные вопросы. Подозреваю что не все браузеры точно его соблюдают.
Но убежден что проблема (если она существует) давно известна. Запротоколирована и на нее есть решение.
Возможно в части конфигураций.

при закрытии/переходе на другую страницу бракзеры закрывают ws, но надкушенный фрукт этого не делает.....
21 фев 19, 13:01    [21816233]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
Sergunka, я еще раз говорю - я использую вебсокеты в спринге (не чисто либу для сокетов). У спринга своя штука над websocket-api и я не сделаю того что предлагаете Вы.


Вы бы не тупили сильно, а сказали какую библиотеку используете

Я Вам дал ссылку на код где используются те же спринговские библиотеки

		<!-- websocket -->

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-websocket</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-websocket</artifactId>
		</dependency>
21 фев 19, 19:31    [21816797]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Sergunka

Вы бы не тупили сильно, а сказали какую библиотеку используете

Я Вам дал ссылку на код где используются те же спринговские библиотеки

		<!-- websocket -->

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-websocket</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-websocket</artifactId>
		</dependency>


Вы походу не знаете спринг и не работали с ним. Но либу я использую от спринга. То что спринг использует у себя websocket-api я писал. кто читать не умеет? И то что спринг делает свою обертку на ws-api тоже писал. И то что если я буду использовать голое ws-api не даст мне возможности использовать спринг в нем, и фичи которые дает спринг вместе с ws-api. что тут не понятного?

странно.
22 фев 19, 00:28    [21816933]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
Но либу я использую от спринга.


Все что тебя спросили какую библиотеку?
22 фев 19, 06:15    [21816968]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Sergunka,
Вот наверное
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/messaging/support/ChannelInterceptor.html
22 фев 19, 08:26    [21816990]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
опять эти гениальные вопросы и написание программ по стаковерфлоу.

Ищи как получить websocketsession и с ним уже работай. Каким образом иначе ты хочешь "разорвать" коннект ?
22 фев 19, 08:35    [21816992]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Озверин
опять эти гениальные вопросы и написание программ по стаковерфлоу.

а что не так? кто Вам сказал что я пишу программы по so? забавные выводы, учитывая что Вы меня не знаете.

Озверин
Ищи как получить websocketsession и с ним уже работай. Каким образом иначе ты хочешь "разорвать" коннект ?

Я хз как. поэтому и написал. Если бы я знал как сделать то что мне нужно я бы не писал сюда. логично?
22 фев 19, 11:08    [21817102]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Sergunka
Все что тебя спросили какую библиотеку?


Вот:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>


Если не бут то:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-websocket</artifactId>
</dependency>
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-messaging</artifactId>
</dependency>
22 фев 19, 11:10    [21817104]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
Tsyklop, ты смотрел дерево зависимостей?
22 фев 19, 11:52    [21817162]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
mayton
Tsyklop, ты смотрел дерево зависимостей?

да. ептить. я ЕЩЕ РАЗ ГВООРЮ. я работаю с сокетами через спринг. Если я буду работать с чистым websocket-api я не смогу юзать фичи спринга. что тут не понятного? то что Вы предлагаете я знаю и раньше так делал. Но не в этой ситуации.
22 фев 19, 11:58    [21817170]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
(поднимая руки)

Хорошо-хорошо работай через спринг. Я просто поинтересовался импементацией.

Нервные какие все..
22 фев 19, 12:00    [21817172]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
mayton, та не нервные. Просто я это уже писал несколько раз. вот и все)
22 фев 19, 12:36    [21817216]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
начать можно тут:
https://github.com/spring-projects/spring-session/issues/35

но, похоже, что если не разбираться(оно тебе надо разбираться? нужен же сразу ответ), то, похоже, что здесь все есть:
https://github.com/spring-projects/spring-framework/issues/16919
22 фев 19, 12:47    [21817224]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
Sergunka
Все что тебя спросили какую библиотеку?


Вот:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>


Если не бут то:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-websocket</artifactId>
</dependency>
 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-messaging</artifactId>
</dependency>


Хорошо, Спасибо.

Приведи код как ты сейчас закрываешь MessageChannel channel? И вообще ты его закрываешь или клиент просто сам отваливается?
22 фев 19, 18:51    [21817578]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Sergunka
или клиент просто сам отваливается?

именно это.
22 фев 19, 23:00    [21817698]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Sergunka,
Отвалился клиент, это наверное народное название.
А в переводе вероятно, изменился статус канала и он закрылся?
Тогда что хочет автор с нервами две страницы?
23 фев 19, 10:09    [21817751]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Или отвалился значит что статус не изменился и мы не подозревая при след.отправке получим райзе?
Выше автор утверждал что ничего не происходит и клиент получает ошибку.
Где код?
...
Аффтар, ты надоел и давай код не там где хотелка а там где сломалось, ОТВАЛИЛОСЬ и не работает.
23 фев 19, 10:15    [21817754]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
Или отвалился значит что статус не изменился и мы не подозревая при след.отправке получим райзе?
Выше автор утверждал что ничего не происходит и клиент получает ошибку.
Где код?
...
Аффтар, ты надоел и давай код не там где хотелка а там где сломалось, ОТВАЛИЛОСЬ и не работает.


я привел код где происходит ошибка. что еще дать? Происходит ошибка, клиенту шлется сообщение об ошибке в формате STOMP и все. Дальше ничего. соединение не разрывается. Висит.

Если бы я знал где можно офнуть юзера, я бы это сделал и не писал бы сюда. логично?
23 фев 19, 11:52    [21817779]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop,
Тяжелый случай.
Если "висит" то где код где висит.
Если "отвалилось" то где код со строчкой комментария про отвалилось.
Если клиент не может отправить на сервер, то где код с этой строчкой?
Если райзе, то где стек ошибки?
Если у нас чат, то код приводить как сервера так и клиента.
..
Болтать прекратишь?
23 фев 19, 12:45    [21817787]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
Непонятно что автора беспокоит. Если сервер на прикладном уровне закрыл клиента - то значит проблем нет. Сервер
с ним уже не будет работать. Если висит физический сокет - ну бох сним пускай висит. Ведь там еще и помимо веб-сокета
еще и слой TCP/IP или автор хочет как в хакерских фильмах его так "оффнуть" чтоб несчатсный поциент выпал
из комфортного кресла или у него лопнули очки виртуальной реальности или у него там дым из системного блока
пошел. Вобщем непонятно какой ожидается полезные эффект.
23 фев 19, 16:33    [21817882]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
Petro123
Или отвалился значит что статус не изменился и мы не подозревая при след.отправке получим райзе?
Выше автор утверждал что ничего не происходит и клиент получает ошибку.
Где код?
...
Аффтар, ты надоел и давай код не там где хотелка а там где сломалось, ОТВАЛИЛОСЬ и не работает.


я привел код где происходит ошибка. что еще дать? Происходит ошибка, клиенту шлется сообщение об ошибке в формате STOMP и все. Дальше ничего. соединение не разрывается. Висит.

Если бы я знал где можно офнуть юзера, я бы это сделал и не писал бы сюда. логично?


Вы можете только закрыть канал. В моем примере в котором я привел я просто закрываю сессию со стороны вебсокет сервера

https://github.com/SVyatkin/dragonfly-demo/blob/master/src/main/java/com/vyatkin/dragonfly/service/WebSocketServerEndPoint.java

@OnClose
	public void onClose(Session session, CloseReason closeReason) {
		logger.info("Server: Session " + session.getId() + " closed because of " + closeReason.toString()); 
		
    	// Remove session from the connected sessions set
    	pullConnections.remove(session);
	}

	/**
	 * @param session
	 *            - current session object
	 * @param t
	 *            - Throwable instance containing error info
	 */
	@OnError
	public void onError(Session session, Throwable t) {
		logger.error("Server: Session " + session.getId() + " error " + t.getMessage());
		
    	// Remove session from the connected sessions set
    	pullConnections.remove(session);
	}



Обычно если происходит ошибка, то просто закрываешь канал и клиент пытается создать у тебя на сервере новую сессию.

Тут надо понимать, что контракт между сервером и клиентом устанавливается через IP:Port + IP:port так что закрытие такого контракта не приведет к сайд эфекту что ты походу закроешь еще чью то сессию.

Я вебсокет не трогал уже больше двух лет, но вижу много библиотек написали. Вот занятный пример где клиент отключается от соединения

https://spring.io/guides/gs/messaging-stomp-websocket/

function disconnect() {
    if (stompClient !== null) {
        stompClient.disconnect();
    }
    setConnected(false);
    console.log("Disconnected");
}


Там STOMP библиотечка какая то хитрая уже нарисовалась т.е. на стороне сервера там должна быть приблуда которая закроет канал или сессию в зависимости от API.

Без кода тут народ вряд ли поможет так как API сильно разнится даже на уровне версии библиотеки.
23 фев 19, 19:37    [21817948]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16265
такие сложности , зачем?
23 фев 19, 21:59    [21817990]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
вадя
такие сложности , зачем?
он ошибки не может внятно показать, а ты про архитектуру спрашиваешь.
24 фев 19, 16:36    [21818202]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
Нам ошибку пока не показали.
24 фев 19, 16:37    [21818203]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16265
Petro123
он ошибки не может внятно показать, а ты про архитектуру спрашиваешь.
тут дело не только в ошибке. как мне кажется , ТС не совсем понимает ws.
24 фев 19, 20:22    [21818304]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Ошибка проверки JWT токена. Вам это что-то даст?

Дело не конкретно в ошибке, а в том, как отключить юзера при возникновении ошибки.
24 фев 19, 20:40    [21818314]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
вадя
тут дело не только в ошибке. как мне кажется , ТС не совсем понимает ws.


Как раз таки понимаю. И если с простым websocket-api проблем не было. то тут это сложнее.
24 фев 19, 20:40    [21818315]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
он ошибки не может внятно показать, а ты про архитектуру спрашиваешь.

Ошибка парсинга JWT токена. Это что-то даст? При чем тут вообще ошибка? мне не важно какая ошибка возникает. Мне важно как отрубить юзера от сокета.

Если в чистом websocket-api это можно сделать и я даже знаю как, то тут это хз.
24 фев 19, 20:42    [21818316]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Тема закрыта. Нет в этом надобности более.
24 фев 19, 20:43    [21818318]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Nixic
Member

Откуда: Perm
Сообщений: 1884
Tsyklop
Тема закрыта. Нет в этом надобности более.

Уволился/уволили? ))
24 фев 19, 23:12    [21818381]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
Ошибка парсинга JWT токена. Это что-то даст? При чем тут вообще ошибка? мне не важно какая ошибка возникает. Мне важно как отрубить юзера от сокета.
опять вместо кода на форуме программистов словоблудие и указы что кому нужно и не нужно.
Пришел с вопросом и учит жизни третью страницу вместо демки кода с вопросом.
25 фев 19, 07:05    [21818437]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Nixic
Уволился/уволили? ))

нет. забил на это.
25 фев 19, 11:10    [21818528]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
опять вместо кода на форуме программистов словоблудие и указы что кому нужно и не нужно.
Пришел с вопросом и учит жизни третью страницу вместо демки кода с вопросом.

Код чего нужен? не понимаю.
25 фев 19, 11:11    [21818530]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
опять вместо кода на форуме программистов словоблудие и указы что кому нужно и не нужно.
Пришел с вопросом и учит жизни третью страницу вместо демки кода с вопросом.

я никого ничему не учу. ХЗ откуда вы это взяли. Я написал что нужно, а не учил кого либо.
25 фев 19, 11:11    [21818532]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
Код чего нужен? не понимаю.
8 человек просили подробностей в коде, а он не понимает.
Перечитай свой топик.
25 фев 19, 11:30    [21818542]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
Я написал что нужно
тут публичный форум. 50‰ спрашиваешь и 50‰ оставляешь соль и спички чтобы другие поняли и учились на твоих ошибках).
25 фев 19, 11:33    [21818545]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
8 человек просили подробностей в коде, а он не понимает. Перечитай свой топик.

Нет, не понимаю, о каком коде идет речь. Тм где был момент и так есть в шапке. О каком тогда конкретно идет речь?
25 фев 19, 11:33    [21818546]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
https://spring.io/guides/gs/messaging-stomp-websocket/ ВОт гайд по которому я делал. Тут и код есть. Подключение на фронте идентичное как у меня.
25 фев 19, 11:35    [21818547]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop,
Ты сказал висит, значит код где висит. И т.д.

21817787
25 фев 19, 11:46    [21818560]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16265
Tsyklop
и по дефолту так, когда возникает ошибка сервак шлет клиенту сообщение ERROR, но соединение не рвет.
что за ошибка? код?
25 фев 19, 12:05    [21818583]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
Делать нечего друзья. Циклоп хочет чтоб мы репродьюсили неизвестный дефект в шаблоне spring-stomp-websocket.
25 фев 19, 12:20    [21818607]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
вадя
что за ошибка? код?


Как я уже писал Выше проверка JWT вылетел эксепшн. К примеру ExpiredJwtException. На фронт отправилось сообщение об ошибке в формате:

автор
ERROR
receipt-id:message-12345
content-type:text/plain
content-length:171
message: malformed frame received


Ответил на Ваш вопрос?
25 фев 19, 12:52    [21818644]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
mayton
Делать нечего друзья. Циклоп хочет чтоб мы репродьюсили неизвестный дефект в шаблоне spring-stomp-websocket.

Кхм. я не хочу вообще что бы что-то повторяли. Вопрос был не об этом вообще. На счет ошибки было сказано как условие при котором я хочу сделать дисконект. А умные люди зачем-то приплели сюда ошибку конкретную. Один вопрос - зачем?
25 фев 19, 12:53    [21818647]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
Ты сказал висит, значит код где висит. И т.д.

Не код висит, а соединение. -_-

автор
Дальше ничего. соединение не разрывается. Висит.


Где тут было упоминание про код?
25 фев 19, 12:55    [21818651]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
Petro123
Ты сказал висит, значит код где висит. И т.д.

Не код висит, а соединение. -_-

автор
Дальше ничего. соединение не разрывается. Висит.


Где тут было упоминание про код?

Вот это читал?
Petro123
И т.д.

21817787
25 фев 19, 13:17    [21818675]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
На счет ошибки было сказано как условие при котором я хочу сделать дисконект. А умные люди зачем-то приплели сюда ошибку конкретную. Один вопрос - зачем?
главное условие топика - Ошибка. Но ошибку почему то приплели)))
25 фев 19, 13:24    [21818688]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
А я согласен с тем что топик пора закрывать. Нет бага - нет проблемы. Нет стектрейса - нет проблемы. Нет жалоб конечных пользователей - тоже нет проблемы. Performance issue тоже не был идентифицирован.

Как-то вот в таком вот аспекте.
25 фев 19, 13:37    [21818699]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
1. HttpSessionHandshakeInterceptor - копирует(по умолчанию) аттрибуты httpsession в атрибуты websession.
2.
25 фев 19, 13:51    [21818718]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
mayton,
+1
Трудно обсуждать термин "соединение висит" это хорошо или плохо в принципе)
25 фев 19, 14:01    [21818727]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
Озверин
1. HttpSessionHandshakeInterceptor - копирует(по умолчанию) аттрибуты httpsession в атрибуты websession.
2.


ааа..

собственно в конфиг методе можно сделать так..и дальше мне лень описывать .т.к. все это есть по ссылке, которую я кидал


@Override
        public void configureWebSocketTransport(final WebSocketTransportRegistration registration) {
            registration.addDecoratorFactory(new WebSocketHandlerDecoratorFactory() {
                @Override
                public WebSocketHandler decorate(final WebSocketHandler handler) {
                    WebSocketHandlerDecorator w = new WebSocketHandlerDecorator(handler) {


                        @Override
                        public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
                            session.close(CloseStatus.NOT_ACCEPTABLE);
                            super.handleMessage(session, message);
                        }

                        @Override
                        public void afterConnectionEstablished(final WebSocketSession session) throws Exception {
                            super.afterConnectionEstablished(session);
                        }
                    };



                    return w;
                }
            });
        }
25 фев 19, 14:22    [21818747]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16265
Tsyklop
Как я уже писал Выше проверка JWT вылетел эксепшн. К примеру ExpiredJwtException. На фронт отправилось сообщение об ошибке в формате:

автор
ERROR
receipt-id:message-12345
content-type:text/plain
content-length:171
message: malformed frame received


Ответил на Ваш вопрос?
а что в эксепшн? в каком месте он?
и почему ошибка шлётся на фронт? для упрощения взлома?
25 фев 19, 14:23    [21818752]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
вадя
а что в эксепшн? в каком месте он?

первый пост темы

вадя
и почему ошибка шлётся на фронт? для упрощения взлома?

ибо так сделали разрабы spring.
25 фев 19, 15:36    [21818835]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Озверин, Хм. спасибо. полезли мысли по поводу реализации. Спасибо огромное!
25 фев 19, 15:37    [21818837]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
главное условие топика - Ошибка. Но ошибку почему то приплели)))


автор
В случае любой ошибки при CONNECT-е я хочу отключить пользователя от вебсокета. как это сделать?


Кхм. где я тут заостряю внимание на ошибке? где сказано об конкретной ошибке? хде?

Тут сказано
автор
В случае любой ошибки
. это что значит какой-то одной, что вы к ней придолбались? или что? при чем тут вообще конкретная ошибка.

Вопрос был
автор
я хочу отключить пользователя от вебсокета. как это сделать?
. при чем тут ошибка? вообще не пойму.
В данном случае ошибка это как триггер к отключению. А какая она абсолютно все равно.

господи.
25 фев 19, 15:41    [21818841]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
mayton
А я согласен с тем что топик пора закрывать. Нет бага - нет проблемы. Нет стектрейса - нет проблемы. Нет жалоб конечных пользователей - тоже нет проблемы. Performance issue тоже не был идентифицирован.

Как-то вот в таком вот аспекте.


Видать Вы и Petro123 читаю не все сообщения. Сколько я раз писал уже что тема закрыта? Но, нет. Надо и дальше чет писать. Гениально.
25 фев 19, 15:43    [21818844]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
mayton
Member

Откуда: loopback
Сообщений: 41870
Tsyklop
mayton
А я согласен с тем что топик пора закрывать. Нет бага - нет проблемы. Нет стектрейса - нет проблемы. Нет жалоб конечных пользователей - тоже нет проблемы. Performance issue тоже не был идентифицирован.

Как-то вот в таком вот аспекте.


Видать Вы и Petro123 читаю не все сообщения. Сколько я раз писал уже что тема закрыта? Но, нет. Надо и дальше чет писать. Гениально.

Пока модератор не закрыл - тема считается открытой. Для сообщества.
Впрочем вы можете ее не читать. Она - суть общественное достояние.

Таков он суровый интернет.
25 фев 19, 15:47    [21818850]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
при чем тут ошибка? вообще не пойму.
притом что задающий вопрос ТС засовывает своё г. характер и мнение далеко далеко.
И дает максимально полную и даже излишнюю информацию.

Tsyklop
вообще не пойму.

Ты вопрос задал, поэтому тебя не просят понимать а исполнять что говорят.
25 фев 19, 16:02    [21818867]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Petro123
Ты вопрос задал, поэтому тебя не просят понимать а исполнять что говорят.

Так вот да. я задал конкретный вопрос. а не "как мне при возникновении такой-то ошибки, отключать юзера". ведь нет. Нет.

окей. Ошибку написал, код скинул выше. что дальше?
25 фев 19, 16:23    [21818901]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16265
Tsyklop
первый пост темы
таки не понятно в чем конкретно ошибка
25 фев 19, 16:47    [21818935]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
вадя
таки не понятно в чем конкретно ошибка


ибо ошибка не важна как таковая. и вопрос был не про ошибку, а про "как сделать". разница есть?
25 фев 19, 16:49    [21818939]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Окей. Мне вообще не понятно зачем сюда приплели и так ухватились за ошибку.

Есть ChanelInterceptor в котором я могу отловить входящее сообщение: это может быть сообщение типа CONNECT, DISCONECT, MESSAGE и т.д. (согласно тому как работает stomp).

В этом интерцепторе, если команда CONNECT идет проверка пользователя через JWT токен.

if (accessor != null && StompCommand.CONNECT.equals(accessor.getCommand())) {
        List<String> headers = accessor.getNativeHeader(AUTHORIZATION);
        accessor.setUser(websocketAuthenticationManager.authenticate(new JWTTokenAuthentication(tokenUtils.resolveToken(headers != null ? headers.get(0) : null))));

    }


Если с токеном что-то не так то будет брошен Exception (ну и вообще если пойдет что-то не так, к примеру ошибка бд и тд.). Я ошибку не обрабатываю и как следствие ее обрабатывает обработчик spring-websocket (тобишь обработчик из либы). И он, при возникновении ошибки, высылает клиенту сообщение (в формате STOMP) об ошибке. Все ок, все замечательно.

Но я не хочу что бы клиент, который не прошел валидацию при CONNECT, был подключен к сокету, дабы сбавить нагрузку на систему. Как следствие мне нужно его как-то отключить от сокета. И вот тут стал вопрос как?

Я работал с либой websocket-api и там все было предельно просто в этом плане. Но вот тут есть трудности.

Спасибо Озверин-у который скинул ссылки где можно чет почитать.
25 фев 19, 16:58    [21818943]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Tsyklop
Окей. Мне вообще не понятно зачем сюда приплели и так ухватились за ошибку.
меняй ТЗ из первого поста на
if (1=1) разорвать канал.
И делов то).
25 фев 19, 17:08    [21818952]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16265
Tsyklop
Я ошибку не обрабатываю и как следствие ее обрабатывает обработчик spring-websocket (тобишь обработчик из либы).
а вот если б ты обработал ошибку, то смог бы закрыть ws

у MessageChannel должен быть метод закрытия .
25 фев 19, 18:32    [21819045]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
вадя
у MessageChannel должен быть метод закрытия .


должен быть, но его нет.
25 фев 19, 21:44    [21819186]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Sergunka
Member

Откуда:
Сообщений: 1904
Tsyklop
вадя
у MessageChannel должен быть метод закрытия .


должен быть, но его нет.


Там не закрытие, а subscribe/unsubscribe - судя по интерфейсам но у меня сейчас нет времени посмотреть
25 фев 19, 22:29    [21819214]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

Откуда: Украина
Сообщений: 1026
Sergunka, Это другая тема. Да, такое есть. Но это уже происходит после того как установлена связь.
25 фев 19, 22:41    [21819222]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / Java Ответить