【发布时间】:2014-06-29 07:51:44
【问题描述】:
我对 JavaScript 和后来的 Node + Express.IO 比较陌生。我正在尝试构建一个页面,该页面将实时跟踪不同“用户”与服务器建立的连接。因此,当我包含 io 模块中的所有功能时,我的 prompt() 和 alert 不再起作用。我正在从我的终端运行nodemon app.js,并且当我这样做时没有出现编译错误。当我删除所有 io 函数时,警报和提示再次起作用。
这些是我的 index.ejs <body> 标签的内容:
<body>
<h1>Chatroom</h1>
<script>
alert("Hello!");
var name = prompt("What is your name?");
io.connect();
io.emit.('got_a_new_user', {name: name});
io.on('new_user', function(data) {
//render this new info in the HTML
var users = data.users;
console.log(users);
if (users != undefined) {
console.log("\n\n\n" + users);
// if users is defined, append the new division containing the username
}
});
io.on('disconnect_user', function(data) {
var users = data.users;
if (users != undefined) {
// If users is defined remove the corresponding HTML element
}
});
</script>
<div id="container">
</div>
</body>
任何帮助将不胜感激。
【问题讨论】:
-
嗨,你能展示一下你是如何包含 io 模块的吗?它应该是这样的:
<script src="/socket.io/socket.io.js" type="text/javascript"></script>其中 src 对应于您服务器的文件夹结构。您也不能执行io.on(...),而是需要执行以下操作:var socket = io.connect,然后是socket.on(...) -
看来我的问题很琐碎,在 emit() 函数之后有一个额外的时间。 'io.emit.('got_a_new_user', {name: name});'应该是 'io.emit('got_a_new_user', {name: name});'。感谢所有回复的人。
标签: javascript node.js express socket.io express.io