2016-10-14 6 views
0

[Это дубликат проблемы сокета socket.io № 2717 на Github. Нет ответов там, я хотел бы получить некоторые подсказки по устранению неполадок ...]Socket.io получает «плохой метод рукопожатия» в Firefox, но не Chrome или Safari

У меня есть тестовая страница (ниже), которая создает соединение socket.io обратно на сервер, а затем прослушивает и записывает время " Сообщения. Он работает так, как ожидалось, для последних Chrome и Safari в OSX 10.10.5. Я использую Socket.io 1.5.0 для всех тестов.

С Firefox 49.0.1 каждый запрос POST получает ответ с bad handshake method. В консоли нет сообщения Socket.io connected..., и нет сообщений time (см. Изображение). Другая интересная информация о POST является:

- Params: EIO:3, t: LUuPeKr, transport:polling 
- POST raw data: "1:1" 

Тестовой страница подключается обратно к приложению создания реагирующего-приложений (0.6.1), который передает запрос на мой собственный сервер на локальном хосте: 3001. Как отмечалось выше, эта страница работает так, как ожидается, с Chrome и Safari.

Какую дополнительную информацию я могу предоставить, чтобы отладить это?

image

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>SOCKET.IO TEST PAGE</title> 
</head> 
<body> 
<h1>Socket.io Test Page</h1> 

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io(); 
    socket.on('connect', function(data){ 
     console.log("Socket.io connected..."); 
    }); 

    socket.on('time', function (data) { 
     console.log(data); 
    }); 
</script> 
</body> 
</html> 

ответ

1

Отвечая на мой собственный пост: Получил решение более на GitHub. https://github.com/socketio/socket.io/issues/2717 рассказывает об исправлении кода socket.io, чтобы он всегда запрашивал «*/*» вместо использования Firefox по умолчанию.