Websocket не работает на GAE (Google App Engine) - PullRequest
2 голосов
/ 23 апреля 2020

Я использую 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.

Любая помощь?

...