ho imparato un po 'da questa pagina ->https://github.com/Automattic/socket.io/issues/1846socket.io errore - connessione socket Web viene chiuso prima che la connessione viene stabilita
Devo SSL per prese a lavorare?
ho lottato con questo errore per un lungo periodo senza la soluzione fino ad ora, posso eventuali geni là fuori per risolvere il puzzle?
Codice My App
var express = require("express");
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(express.static(__dirname + '/html'));
http.listen(process.env.PORT || 3000, function(){
console.log('listening on *:', process.env.PORT || 3000);
new shell.Shell(app, io);
});
app.use(function(request, response, next){
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
response.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Auth-Token");
request.id = self.id++;
next();
});
var self = this;
app.get("/", function(request, response) {
response.end("");
});
app.get("/entitlement/:uri", function(request, response){
self.delegate.entitlement(request, response);
});
app.get("/speakers", function(request, response) {
self.delegate.speaker(request, response);
});
app.get("/speakers/:id", function(request, response) {
self.delegate.speaker(request, response);
});
app.get("/sponsors", function(request, response){
self.delegate.sponsor(request, response);
});
app.get("/sponsors/:id", function(request, response) {
self.delegate.sponsor(request, response);
});
app.get("/agendas", function(request, response) {
self.delegate.agenda(request, response);
});
app.get("/agendas/:id", function(request, response) {
self.delegate.agenda(request, response);
});
app.get("/sessions/:id", function(request, response){
self.delegate.agenda(request, response);
});
app.get("/attendees", function(request, response) {
//self.delegate.attendee(request, response);
});
///attendees/:id to get chat history
io.on("connection", function(socket){
//self.delegate.connection(io, socket, null);
socket.on('get-age-in-dog-years', function(data, fn) {
console.log(data);
fn(data.age * 7) ;
});
socket.on("chat", function(chat){
//self.delegate.chat(io, socket, chat);
});
socket.on("disconnect", function(){
//self.delegate.disconnect(io, socket)
});
});
},
Questa è una richiesta errata 400 errore. Sembra che il client si aspetti una connessione web-socket e l'aggiornamento dell'handshake potrebbe non avvenire. Puoi fare un tcpdump e vedere l'handshake ws – spicyramen
ho commentato poche righe di codice e ha funzionato, quelle linee includono roba middleware app.use (header related), anche eliminata node_modules e reinstallata con save, (pensavo funzionasse su localhost), Proverò a riprodurre l'errore – user2727195