Я использую реакцию/машинопись в качестве внешнего интерфейса и Springboot в качестве внутреннего интерфейса.
Мое приложение может подключаться к серверной части через веб-сокет, также может подписаться на канал, а также может отправлять сообщения из внешнего интерфейса в серверную часть, но Сторона внешнего интерфейса. Я не вижу никаких сообщений из серверной части. Я проверил, что сообщения отправляются из серверной части во внешний интерфейс, но на стороне внешнего интерфейса я не вижу никаких обновлений.
Можете как-нибудь помочь мне, где у меня ошибка?Большое спасибо.
@EnableAsync
@Controller
public class WebSocketController {
private final SimpMessagingTemplate messagingTemplate;
public WebSocketController(SimpMessagingTemplate messagingTemplate) {
this.messagingTemplate = messagingTemplate;
}
@MessageMapping("/start-counting/{userId}")
@SendToUser("/queue/update")
public void startCounting(@DestinationVariable String userId) {
System.out.println("Start counting...");
processCountingAsync(userId);
}
@Async
public void processCountingAsync(String userId) {
for (int i = 1; i {
const [client, setClient] = useState(null);
const [count, setCount] = useState(null);
const jwtToken = useStore((state: any) => state.jwtToken)
useEffect(() => {
const newClient = new Client({
brokerURL: 'ws://localhost:8310/webrde/ws',
reconnectDelay: 5000,
debug: function (str) {
console.log('STOMP Debug:', str);
},
});
newClient.onConnect = () => {
console.log('Connected to WS');
newClient.subscribe('/user/queue/update', (message) => {
console.log('Received message:', message.body);
const data = JSON.parse(message.body);
setCount(data.count);
}, {id: jwtToken});
};
newClient.activate();
setClient(newClient);
return () => {
newClient.deactivate();
};
}, []);
const startCounting = () => {
if (client) {
client.publish({
destination: `/webrde/start-counting/${jwtToken}`,
body: '',
});
}
};
return (
Start Counting
Counting: {count !== null ? count : 'Not started'}
);
};
export default WebSocketComponent;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/queue", "/topic");
registry.setApplicationDestinationPrefixes("/webrde");
registry.setUserDestinationPrefix("/user");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").setAllowedOrigins("http://localhost:3011");
}
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... om-backend
Spring boot websocket + реакция -> не получать сообщения от бэкэнда ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1716293695
Anonymous
Я использую реакцию/машинопись в качестве внешнего интерфейса и Springboot в качестве внутреннего интерфейса.
Мое приложение может подключаться к серверной части через веб-сокет, также может подписаться на канал, а также может отправлять сообщения из внешнего интерфейса в серверную часть, но Сторона внешнего интерфейса. Я не вижу никаких сообщений из серверной части. Я проверил, что сообщения отправляются из серверной части во внешний интерфейс, но на стороне внешнего интерфейса я не вижу никаких обновлений.
Можете как-нибудь помочь мне, где у меня ошибка?Большое спасибо.
@EnableAsync
@Controller
public class WebSocketController {
private final SimpMessagingTemplate messagingTemplate;
public WebSocketController(SimpMessagingTemplate messagingTemplate) {
this.messagingTemplate = messagingTemplate;
}
@MessageMapping("/start-counting/{userId}")
@SendToUser("/queue/update")
public void startCounting(@DestinationVariable String userId) {
System.out.println("Start counting...");
processCountingAsync(userId);
}
@Async
public void processCountingAsync(String userId) {
for (int i = 1; i {
const [client, setClient] = useState(null);
const [count, setCount] = useState(null);
const jwtToken = useStore((state: any) => state.jwtToken)
useEffect(() => {
const newClient = new Client({
brokerURL: 'ws://localhost:8310/webrde/ws',
reconnectDelay: 5000,
debug: function (str) {
console.log('STOMP Debug:', str);
},
});
newClient.onConnect = () => {
console.log('Connected to WS');
newClient.subscribe('/user/queue/update', (message) => {
console.log('Received message:', message.body);
const data = JSON.parse(message.body);
setCount(data.count);
}, {id: jwtToken});
};
newClient.activate();
setClient(newClient);
return () => {
newClient.deactivate();
};
}, []);
const startCounting = () => {
if (client) {
client.publish({
destination: `/webrde/start-counting/${jwtToken}`,
body: '',
});
}
};
return (
Start Counting
Counting: {count !== null ? count : 'Not started'}
);
};
export default WebSocketComponent;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/queue", "/topic");
registry.setApplicationDestinationPrefixes("/webrde");
registry.setUserDestinationPrefix("/user");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").setAllowedOrigins("http://localhost:3011");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78511779/spring-boot-websocket-react-not-receiving-messages-from-backend[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия