【发布时间】:2017-12-21 11:35:00
【问题描述】:
我正在尝试在active.ejs 上呈现一些数据,它有一个正在侦听事件users 的套接字。事件users 由index.js 作为广播发出。
我在active.ejs 的套接字侦听器函数中有一个console.log("do you go here")。
但是,它永远不会在socket.on 中记录“你去这里吗”,这意味着index.js 发出的广播不会被active.ejs 接收。我怎样才能收到它?
index.js
var io = socket(server);
io.on('connection', function(socket){
count++;
socket.broadcast.emit('users', socket.handshake.query);
});
active.ejs
..html boilerplate
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="http://localhost:4000/socket.io/socket.io.js"></script>
</head>
<body>
<p>
Welcome,
<%= user_info.uri %>
</p>
<div id="active"></div>
<script>
var socket = io.connect('http://localhost:4000/tune-in', {query: <%- JSON.stringify(user_info) %>});
var active = document.getElementById('active');
// Listening for events on socket
socket.on('users', function(data){
console.log('do you go here');
active.innerHTML += "<p><em>" + data.display_name + " is connected" + "</em></p>";
});
</script>
</body>
</html>
【问题讨论】:
标签: javascript socket.io ejs