socket.io错误 – 在build立连接之前closuresweb套接字连接

我从这个页面学到了一点 – > https://github.com/Automattic/socket.io/issues/1846

我需要SSL套接字吗?

在这里输入图像描述

我一直在努力解决这个错误很长一段时间没有解决scheme,任何天才都可以解决这个难题?

我的应用程序代码

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) }); }); }, 

您可能将socket.io附加到服务器端的错误项目上。 使用快递时,您的http对象是不必要的。 你可以直接附加到快速应用程序? 看这里:

http://socket.io/docs/#using-with-the-express-framework

 var io = require('socket.io')(app) 

这可能会给您的应用程序附加一个不正确的参考。

Express&Socket.io的初始化似乎是正确的。 你正在使用的服务器是否支持WebSockets? 这个错误看起来是一个WebSocket连接无法build立的状态。

Socket.io首先与长轮询build立连接,然后尝试将该连接升级到WebSocket连接(如果可能的话)。 它看起来不能升级,但应用程序可能仍然有效。 您是否确认客户端无法通过套接字发送到服务器,并且服务器没有正确处理?