Я использую websocket в моем приложении весенней загрузки + реакции, которое работало нормально. Теперь я развертываю это приложение на GAE (оно имеет четыре экземпляра и может расширяться до 6 экземпляров).
Но здесь websocket не работает нормально, как и должно быть.
Соединение websocket создается, но ответ от бэкэнда не приходит, если я обновляю sh страницу, то иногда она работает, и если снова обновить sh, то это не так работа.
Ниже приведен справочный код для создания подключения к веб-сокету в React js: -
@action connectToWebSocket = (channelName) => {
this.webSocketInitilization();
this.stompClient.connect({}, this.connectSocket, this.onError);
}
@action webSocketInitilization = () => {
this.socket = new SockJS('/wss');
this.stompClient = Stomp.over(this.socket);
this.stompClient.debug = null
}
connectSocket = () => {
this.subscription = this.stompClient.subscribe("/topic/model_" + this.modelId, this.onMessageReceived);
console.log("connection created");
}
Внутренний файл конфигурации: -
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/wss").setAllowedOrigins("*").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic"); // Enables a simple in-memory broker
}
}
Не уверен, что проблема может быть связана с конфигурацией GAE?
Отредактировано: - Добавление файла app.yml
runtime: java
env: flex
resources:
memory_gb: 6.5
cpu: 4
disk_size_gb: 20
automatic_scaling:
min_num_instances: 4
max_num_instances: 8
cpu_utilization:
target_utilization: 0.6
handlers:
- url: /.*
script: this field is required, but ignored
network:
session_affinity: true
Я исследовал это, поэтому люди говорили это параметр session_affinity: true
будет работать только в версии beta
, раньше у меня была другая версия, поэтому я обновил свою версию, но все же этот параметр не отражается в конфигурации моего ядра приложения.
Относительно e журналы ошибок: - Удивительно, но я не получаю никаких журналов ошибок на консоли браузера и не в журналах GAE.
Любая помощь?