소켓 JS를 사용하여 노드 JS에서 프론트 엔드로 메시지를 전달하려고합니다. 그러나 메시지는 전송되지 않습니다.소켓 메시지를 ejs로 가져올 수 없습니다
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
const path = require('path');
const PORT = process.env.PORT || 5000;
io.on('connection', function(socket){
io.emit('order', "Order Updated");
console.log("Order Updated");
});
app.use(express.static(path.join(__dirname, 'public')))
.set('views', path.join(__dirname, 'views'))
.set('view engine', 'ejs')
.get('/', (req, res) => res.render('pages/index'));
http.listen(PORT, function(){
console.log('listening on *:' + PORT);
});
콘솔 로그는 Order Updated
으로 인쇄됩니다. index.ejs 파일에 다음 코드가 있으며 UI에 콘솔 로그가 표시되지 않습니다.
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function() {
var socket = io();
socket.on('order', function(msg){
console.log(msg);
window.scrollTo(0, document.body.scrollHeight);
});
});
</script>
업데이트 1
다음과 같은 답변을 바탕으로, 나는에 코드를 업데이트 :
io.on('connection', function(socket) {
socket.emit('order', "Order Updated");
});
업데이트 2
$(function() {
var socket = io.connect('http://127.0.0.1:5000', {transports ['polling']});
socket.on('order', function(msg) {
console.log(msg);
});
});
업데이트했지만 UI에 전달되는 데이터가 표시되지 않습니다. 제가 누락 된 것이 있습니까? –
내 편집과 같이 전체 호스트 : 포트로 연결해야합니까? – Sparw
나는 그것을 시도했다, 아직도 운이 없다. –