chat-example icon indicating copy to clipboard operation
chat-example copied to clipboard

io.on not sending console.log

Open Kalevera opened this issue 9 years ago • 4 comments

I have this in package

   {
      "name": "socket-chat-example",
      "version": "0.0.1",
      "description": "my first socket.io app",
      "dependencies": {
        "express": "^4.10.2",
        "socket.io": "^1.3.5"
     }
}

this in my html

<!doctype html>
<html>
  <head>
    <title>Socket.IO chat</title>
    <style>
      * { margin: 0; padding: 0; box-sizing: border-box; }
      body { font: 13px Helvetica, Arial; }
      form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
      form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
      form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
      #messages { list-style-type: none; margin: 0; padding: 0; }
      #messages li { padding: 5px 10px; }
      #messages li:nth-child(odd) { background: #eee; }
    </style>
  </head>

  <body>
    <ul id="messages"></ul>
    <form action="">
      <input id="m" autocomplete="off" /><button>Send</button>
    </form>
  </body>
  <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(document).ready(function(){
  var socket = io();
  $('form').submit(function(){
    socket.emit('chat message', $('#m').val());
    $('#m').val('');
    return false;
  });
  socket.on('chat message', function(msg){
    $('#messages').append($('<li>').text(msg));
  });
});
</script>
</html>

this is in index.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/',function(req,res){
    res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
    socket.on('chat message', function(msg){
        io.emit('chat message: ', msg);
    });
});

http.listen(3000,function(){
    console.log('lisenting on *:3000');
});

For some reason the io.on in index.js wasn't writing to console.log in the middle of tut. and i assumed it was something wrong with windows since alot of console.log doesn't show in CMD.

Anyways does anyone have clue as to why this isn't working? has something depreciated in socket.io that doesn't allow this tutorial to work anymore or is it something specific to windows machines? Thanks for your response

Kalevera avatar Mar 08 '15 01:03 Kalevera

tht is because you have removed console.log(" xyz") from the code as shown below:

"io.on('connection', function(socket){ socket.on('chat message', function(msg){ io.emit('chat message: ', msg); // add after this line "console.log("anything you want as output")" }); });"

i am a newbie if i m worng let me know. Explanation appreciated.

Brijesh685 avatar Mar 16 '15 09:03 Brijesh685

its because your scripts is below /body tag, put them above /body and everything will be just fine

adovbos avatar Jun 18 '15 10:06 adovbos

in index.html give form an id, like:

in script part use #form instead of 'form', like: $(function() { var socket = io(); $('#form').submit(function(){ socket.emit('chat message', $('#m').val()); $('#m').val(''); return false; }); socket.on('chat message', function(msg){ alert(msg); // not working yet?? $('#messages').append($('

  • ').text(msg)); }); });
  • terra1203 avatar Sep 02 '15 10:09 terra1203

    #arekan127 not put above,should be put below...

      <body>
        <ul id="messages"></ul>
        <form action="">
          <input id="m" autocomplete="off" /><button>Send</button>
        </form>
        <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
        <script src="http://code.jquery.com/jquery-1.11.1.js"></script>
        <script>
          var socket = io();
          $('form').submit(function(){
            socket.emit('chat message', $('#m').val());
            $('#m').val('');
            return false;
          });
          socket.on('chat message', function(msg){
            $('#messages').append($('<li>').text(msg));
          });
        </script>
      </body>
    

    EasonWang01 avatar Feb 04 '16 06:02 EasonWang01