Клиенты, пытающиеся подключиться к веб-сокет-серверу Spring Cloud Engine с Google Cloud Compute, закрывают соединение: 1000 мгновенно. Что я делаю не так?
Я использую весенний сервер websocket / rest на экземпляре Google Cloud Compute Engine. Правила брандмауэра были правильно настроены, и подключение к виртуальной машине работает через браузер, но если я пытаюсь открыть подключение к веб-сокету, оно мгновенно закрывается. Подключение веб-сокетов к тому же серверу на моем локальном компьютере без проблем подключается, и протоколирование http показало, что сервер никогда не получает запрос для запуска. Клиенты веб-сокета получают закрытое соединение: 1000. Это код клиента веб-сокета:
`
void clientConnect(){
Serial.print("Sending connection to: ");
HTTPClient http;
http.begin(SERVER_ADDR);
int httpCode = http.GET();
if(httpCode > 0){
String parload = http.getString();
http.end();
int url = parload.indexOf("http");
int lastUrl = parload.lastIndexOf("\"");
String u = parload.substring(url + 4,lastUrl);
serverUrl = u;
}
Serial.println(serverUrl);
clnt.begin("35.247.188.177",80,"/network");
clnt.setReconnectInterval(RECONNECT_DELAY);
}
void gotEvent(WStype_t type, uint8_t * payload, size_t length) {
switch(type) {
case WStype_DISCONNECTED:
Serial.printf("[WSc] Disconnected!\n");
break;
case WStype_CONNECTED: {
Serial.printf("[WSc] Connected to url: %s\n", payload);
// send message to server when Connected
clnt.sendTXT("Connected");
}
break;
case WStype_TEXT:
Serial.printf("[WSc] get text: %s\n", payload);
// send message to server
// webSocket.sendTXT("message here");
break;
case WStype_BIN:
Serial.printf("[WSc] get binary length: %u\n", length);
// send data to server
// webSocket.sendBIN(payload, length);
break;
case WStype_PING:
// pong will be send automatically
Serial.printf("[WSc] get ping\n");
break;
case WStype_PONG:
// answer to a ping we send
Serial.printf("[WSc] get pong\n");
break;
}
}
Конфигурация сервера веб-сокета:
@Configuration
@EnableWebSocket
public class WebSocketConfiguration implements WebSocketConfigurer {
private static Logger logger = LoggerFactory.getLogger(WebSocketConfiguration.class);
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry webSocketHandlerRegistry) {
logger.info("Registering websocket handlers");
webSocketHandlerRegistry.addHandler(new DoorSocketConnectionHandler(),"/network").setAllowedOrigins("*");
}
}
Клиенты подключаются сникаких проблем на моей локальной машине через локальную сеть, но при перемещении сервера на сервер облачных вычислений Google они мгновенно закрываются. Журналы HTTP показывают, что сервер никогда не получал запрос на запуск, а журналы spring / actator / httptrace пусты