데이터 변경시보기를 업데이트해야하는 웹 앱을 구축 중입니다. 이 목적을 위해 나는 socket.io를 사용하고있다. 내 콘솔에 보면소켓이 경로 내에서 방출되지 않습니다.
const io = require('socket.io')(http);
/* WEB SOCKET INITIALISATION
----------------------------------------- */
io.on('connection', function(socket) {
io.emit('new connection', 'new connection');
socket.on('disconnect', function() {
io.emit('offline', 'offline')
});
});
, 그것은 곧 내가 페이지에있어로의에게 '새 연결'로그 :이 server.js 파일의 설정입니다. 이제 내가 만든 경로 중 하나에서 소켓을 사용하고 싶습니다. 이것이 가능하려면 나는이 같은 경로를 필요로하는 곳으로 io
바인딩 :
const dashboardRouter = require('./routes/dashboard')(io);
이 경로의 일부의 모습처럼 :
/* MAKE SOCKET.IO ACCESSABLE
--------------------------------------------------------------- */
module.exports = function(io) {
/* INDEX ROUTE
-------------------------------------------------------------- */
router.get('/', account.checkSession, playwalls.statistics, playwalls.getYours, function(req, res, next) {
io.emit('update', 'testen');
res.locals.username = req.session.username;
res.render('dashboard/index');
});
/* EXPORT ROUTER
--------------------------------------------------------------- */
return router;
}
문제는 때 I 업데이트를 내 보내면 콘솔에 로그인하지 않습니다. 내가 경로 내에 console.log(io)
을하면, socket.io를 사용할 수있는 것처럼 보입니다. 터미널 콘솔 내부에 오류가 없습니다. 내가 잘못 여기서 뭐하는 거지
(function() {
const socket = io();
socket.on('update', function(data) {
console.log('Works');
});
socket.on('new connection', function(data) {
console.log(data);
});
}());
:
이 자바 스크립트 파일을 클라이언트 측의 모습인가? 소켓이 메시지를 내보내는 것을 어떻게 확인할 수 있습니까? 누군가가 나를 도와 줄 수 있기를 바랍니다!
미리 감사드립니다.
나는이 권리를 얻고 있는지 잘 모르겠다. 하지만 페이지/경로가로드되는 동안 웹 소켓에 연결되어 있지 않습니다. 방출 되더라도'io.emit'가 호출 된 후에 페이지가로드되기 때문에 그것을 볼 수 없습니다. 아니면 '대시 보드'경로로 AJAX 호출을하고 있습니까? –