+
95
-

nodejs写的socketio报错{"code":5,"message":"Unsupported protocol version"}

我用nodejs写了一个简单的socket.io服务器,结果报错

{"code":5,"message":"Unsupported protocol version"}

代码如下:

var app = require('express')()//链式语法
var http = require('http').Server(app)
var io = require('socket.io')(http, {
   
    cors: {
        origin: ['web.debug.only.bfw.wiki/'],//跨域设置
        methods: ["GET", "POST"],
        credentials: true,
    }});

//2。express 路由
app.get('/', (req, res)=> {
    //res.sendFile(__dirname+'/index.html')
    // res.send(new Buffer('whoop'));
    //  res.send({
    //  some: 'json'
    //});
    var str = `
    <!DOCTYPE html>

    <html>

    <head>
    <meta charset="UTF-8">

    </head>

    <body>

    <script src="//repo.bfw.wiki/bfwrepo/js/socket.io.js"></script>

    <script>

    window.onload = function () {

    var socket = io.connect(':3001');

    //监听与服务器端的连接成功事件

    socket.on('connect', function () {

    console.log('客服端连接成功');
    socket.emit("message","say");


    });

    // 客服端收到服务器发过来的消息后

    socket.on('message', function (message) {

    console.log('客服端接收消息 ' + message);

    });

    //监听与服务器端断开连接事件

    socket.on('disconnect', function () {

    console.log('断开连接');

    });

    };

    </script>

    </body>

    </html>
    `;

    res.send(str);
})
// app.get('/list',(req, res)=>{
// res.send('<h1>hello world list !</h1>')
// })

io.on('connection', function(socket) {
    console.log('a user connected');
    //socket = client
    socket.on('disconnect', function() {
        console.log('user disconnected');
    });
    //绑定了一个chat message事件 ,在前端触发
    socket.on('chat message', function(msg) {
        io.emit('chat message', msg);
    });
});

//1.创建一个监听端口,开启服务器

http.listen(3001, ()=> {
    console.log('listening 3001')
})


网友回复

+
15
-

设置allowEIO3: true,

var app = require('express')()//链式语法
var http = require('http').Server(app)
var io = require('socket.io')(http, {
    allowEIO3: true,
    cors: {
        origin: ['web.debug.only.bfw.wiki/'],//跨域设置
        methods: ["GET", "POST"],
        credentials: true,
    }});

//2。express 路由
app.get('/', (req, res)=> {
    //res.sendFile(__dirname+'/index.html')
    // res.send(new Buffer('whoop'));
    //  res.send({
    //  some: 'json'
    //});
    var str = `
    <!DOCTYPE html>

    <html>

    <head>
    <meta charset="UTF-8">

    </head>

    <body>

    <script src="//repo...

点击查看剩余70%

我知道答案,我要回答