简体   繁体   中英

Why don't my Javascript prompts show up from my Express.IO .ejs file?

I am relatively new to JavaScript and subsequently Node + Express.IO. I am trying to build a page that will track in real time connections made by different 'users' to the server. Consequently, when I do include all the functions from the io module, my prompt() and alert do not work anymore. I am running nodemon app.js from my terminal and no compilation errors are showing up when I do so. The alert and prompt work again when I remove all the io functions.

These are the contents of my index.ejs <body> tag:

<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>

Any help would be much appreciated.

Adding example for the comment added by UKatz,

You will have to connect socket.io from the client as follows,

index.ejs

<script src="http://ip:port/socket.io/socket.io.js"></script>

<script type="text/javascript">
     var socket = io.connect('http://ip:port');
     socket.emit('got_a_new_user', {name: name});  
</script>

Check socket.io documentation for how to connect socket.io with client.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM