带有URL的Socket.io基本Web套接字连接?

时间:2018-09-11 00:23:19

标签: javascript node.js sockets websocket socket.io

我的客户正在向以下URL发送WebSocket请求:ws://localhost:3000/feed/XBTMUR

enter image description here

在我的服务器中,我有运行Express的NodeJ。我想使用Socket.io侦听连接到该URL的客户端并定期发送供稿数据。 我试过了,但是没有用:

var app = require('../app');
var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);
/**
 * Listen on provided port, on all network interfaces.
 */

var io  = require('socket.io')(server);
var feed =
    io.of('/feed/XBTMUR').on('connection', function (socket) {

        socket.emit('news', { hello: 'world' });
        socket.on('my other event', function (data) {
            console.log(data);
        });
    });

io.on('connection', function(socket) {
    console.log('a user connected, id ' + socket.id);
    socket.on('disconnect', function() {
        console.log('a user disconnected, id '  + socket.id);
    })
})
setInterval(()=>{
    io.sockets.emit('this', { receivers: 'everyone'});
},1000)

server.listen(port);

客户端未使用Socket io。

1 个答案:

答案 0 :(得分:0)

我认为在阅读documentation时实现是错误的。

var feed = io.of('/feed')     // `/feed` is the namespace
.on('connection', function (socket) {

    socket.to('XBTMUR', { hello: 'world' });  // `XBTMUR` is the room / socket id

});

希望这会有所帮助。