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

Откуда:
Сообщений: 1774
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

Откуда: Украина
Сообщений: 986
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

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


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

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38436
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

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

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

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

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

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

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

Откуда: Украина
Сообщений: 986
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
Сообщений: 40405
Tsyklop, ты смотрел дерево зависимостей?
22 фев 19, 11:52    [21817162]     Ответить | Цитировать Сообщить модератору
 Re: Как отключить клиента от websocket? Spring + websocket + sockjs  [new]
Tsyklop
Member

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

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

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

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

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

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

Откуда: Ростов-на-Дону
Сообщений: 5066
начать можно тут:
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

Откуда:
Сообщений: 1774
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

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

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

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

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

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


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

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

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

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

Откуда:
Сообщений: 1774
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

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

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

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

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

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

Дело не конкретно в ошибке, а в том, как отключить юзера при возникновении ошибки.
24 фев 19, 20:40    [21818314]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Java Ответить