Próbuję użyć przykładowej aplikacji heroku: https://github.com/lstoll/socket-io-chat-heroku jako szablonu do zbudowania własnej aplikacji socket.io, ale korzystam z Express 4.0, Node 0.10.x i Socket.io 0.9.16.Przykładowy błąd Heroku socket.io w Express 4.0
Teraz problemem jest to, że gdy uruchamiam mój serwer, wszystko jest w porządku, ale gdy uruchamiam mojego klienta, pojawia się następujący błąd:
Uncaught ReferenceError: require is not defined socket.io.js:12
Uncaught ReferenceError: io is not defined chat2:2
Moja odpowiedni kod serwera jest następujący:
var app = express();
var http = require('http');
var server = http.createServer(app);
var sio = require('socket.io');
var port = 3000 || process.env.PORT;
server.listen(port);
var io = sio.listen(server);
io.sockets.on('connection'), function(socket) {
...
});
na mojej stronie klienta, mam następujący: próbowałem obu (to jest w nefrytu, nawiasem mówiąc):
script(src='/socket.io/socket.io.js') OR script(src='http://localhost:3000/socket.io/socket.io.js')
var socket = io.connect() OR var socket = io.connect('http://localhost:3000')
Żadna z tych opcji nie zadziałała, zawsze powodując błąd po stronie klienta. Czy jest coś specjalnego do zrobienia w Express 4.0? Zadałem bardzo podobne pytanie tutaj: Node.js /socket.io/socket.io.js not found express 4.0, ale jest to kolejna próba połączenia czatu z innym szablonem.
Aktualizacja i edycja: po pracy mogłem wdrożyć aplikację heroku za pomocą Express 4.0 i socket.io, pod adresem: http://salty-escarpment-7398.herokuapp.com/chat.
Problem jest teraz, aby zintegrować go z powrotem do mojego obecnego app i po dużo pracy, teraz otrzymuję błąd:
22:19:56 web.1 | GET /socket.io/?EIO=2&transport=polling 404 26ms - 1.67kb
22:19:59 web.1 | GET /socket.io/?EIO=2&transport=polling 404 25ms - 1.67kb
mam:
io.set('transports', ['xhr-polling']);
io.set('polling duration', 10);
ustawić go do xhr-polling, a mój kod serwera jest prawie identyczny z tym, co było powyżej. Strona ładuje się jednak tylko wtedy, gdy próbuje wysłać czat, że nic się nie dzieje, a 404 zaczyna się pojawiać.
Dzięki
Znalazłeś rozwiązanie dla błędów 404 z '/socket.io/?EIO=2 ...'? – JVE999