node.js - Socket.io + Express | io.on('connection' ...) not fired -


i've little express-server , want fire socket.io connection

here is, have on server-side:

var app = require('express')(); var server = require('http').server(app); var io = require('socket.io')(server);  app.all('*', function(req, res, next) {     res.header("content-type", "text/plain");     res.header("access-control-allow-origin", "*");     next(); });  app.get('/run', function(req, res, next){     io.on('connection', function (socket) {        socket.on('client_data', function (data) {           console.log('message: '+data.message);        });     }); }); server.listen(8002, function() {     console.log('listening on port %d', server.address().port); }); 

here have on client side:

<script src="http://host:8002/socket.io/socket.io.js"></script> <script>   var socket = io.connect("http://host:8002");   socket.emit('client_data', {'message': 'hello there!'}); </script> 

now, when go browser , type in http://localhost:8002/run jump "app.get('/run'..)"-part in app.js on server ...but unfortunately not execute io.on('connection'..){}-part , reason not output in console send client. ideas or solution on issue?

edit: ok, must have fact, io.on('connection') running withing app.get('/run')-part. because if put io.on('connection')-part in server.listen()-part...it works. idea why dosnt work inside?


Comments