Javascript 如何将node.js服务器页面连接到套接字服务器,就像它是客户端一样?
我在这里看到了许多类似的问题,例如关于将服务器连接到套接字的问题,但是,这似乎不起作用 我的目标是让我的一个服务器页面偶尔向所有连接的客户端发出一个高级事件。我的套接字服务器侦听器sockets.js如下所示Javascript 如何将node.js服务器页面连接到套接字服务器,就像它是客户端一样?,javascript,node.js,sockets,socket.io,passport.socketio,Javascript,Node.js,Sockets,Socket.io,Passport.socketio,我在这里看到了许多类似的问题,例如关于将服务器连接到套接字的问题,但是,这似乎不起作用 我的目标是让我的一个服务器页面偶尔向所有连接的客户端发出一个高级事件。我的套接字服务器侦听器sockets.js如下所示 io.on('connection', function (socket) { socket.on('advance', function () { console.log('advancing clients'); io.emit('advance
io.on('connection', function (socket) {
socket.on('advance', function () {
console.log('advancing clients');
io.emit('advance');
});
});
我的另一个服务器页面queue.js有以下代码
var socket = require('socket.io-client');
socket.connect('localhost:5000');
socket.on('connect', function () {
socket.emit('advance');
});
我也试过了
var socket = require('socket.io-client');
socket.connect('localhost:5000');
socket.emit('advance');
这两个问题都在我联系的另一个问题中,但都失败了。在第一个示例中,我收到了错误
socket.on is not a function
第二天呢
socket.emit is not a function
看起来socket.connect工作正常,但是socket.on和socket.emit都失败了。其思想是queue.js将向所有客户端发出一个事件,以便它们知道如何从服务器请求下一首歌曲
作为奖励,我碰巧用它来验证我的用户,尽管我似乎没有收到ioAuthFail消息,这通常会在用户尝试连接但未经验证时发生
值得一提的是,我的套接字身份验证代码
io.use(passportSocketIo.authorize({
//cookieParser:
key:'user',
secret:'secret',
store:new MongoStore({mongooseConnection:mongoose.connection}),
success:onAuthorizeSuccess,
fail:function(){console.log('ioAuthFail')}
}));
如果有比使用socket.io更好的方法来推进客户机,我也会接受,但现在看来这似乎是对我来说最好的方法,假设我可以让它工作的话
编辑
如注释所述,将我的代码更改为
var io = require('socket.io-client');
socket = io.connect('localhost:5000');
socket.on('connect', function () {
socket.emit('advance');
});
socket.emit('advance');
不会破坏它,但也不起作用。尝试var io=require'socket.io client';var socket=io.connect;我将代码更改为socket=io.connect'localhost:5000';在'connect'上,函数{socket.emit'advance';};插座。发出“前进”信号;这似乎并没有破坏它,但我没有从我的套接字服务器收到任何console.log