0

I've this code:

Server (Using http.Server):

var io = require("socket.io").listen(server);

io.sockets.on("connection", function (socket) {
    socket.emit("prompt");
    socket.on("retval", function (data) {
        console.log(data);
    });
});

Client:

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect('http://ip:port');
    socket.on('prompt', function (data) {
        var username=prompt("Enter username");
        var password=prompt("Enter password");
        socket.emit("retval", { name: username, pass: password });
    });
</script>

I'm not getting the prompt when I open the page, I'm getting it only when I terminate the node process (CTRL + C).

1 Answers1

0

Without seeing more of your code it's difficult to diagnose your problem, but here's a working example:

var http = require("http");
var io;

var server = http.createServer(function(req, res) {
  res.writeHead(200, {"Content-Type": "text/html"});
  var html = "<script src='/socket.io/socket.io.js'></script>"
           + "<script>"
           + "  var socket = io.connect('http://localhost:8080');"
           + "  socket.on('prompt', function (data) {"
           + "    var username=prompt('Enter username');"
           + "    var password=prompt('Enter password');"
           + "    socket.emit('retval', { name: username, pass: password });"
           + "  });"
           + "</script>";
  res.end(html);
});

io = require("socket.io").listen(server);

io.sockets.on("connection", function (socket) {
  console.log("connection");
  socket.emit("prompt");
  socket.on("retval", function (data) {
    console.log(data);
  });
});

server.listen(8080);

console.log("Server listening on port 8080");

When you start this as a node instance you should see this output in your terminal:

$ node server.js
  info - socket.io started
Server listening on port 8080

Load http://localhost:8080/ in your browser and the username prompt should appear.

Jazor
  • 284
  • 3
  • 5
  • There was a delay, now fixed. http://stackoverflow.com/questions/8350630/nodejs-with-socket-io-delay-emitting-data?rq=1 – user2740466 Sep 03 '13 at 14:59