Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
51
rated 0 times [  54] [ 3]  / answers: 1 / hits: 8050  / 7 Years ago, fri, february 10, 2017, 12:00:00

On client side in browser as ejs page:



<script src=https://cdn.socket.io/socket.io-1.2.0.js>
</script>
<script>
var socket = io()
socket.on('message', function (msg) {
console.log(msg)
})
</script>


On server side in Node Js:



var http = require('http').Server(app);
var io = require('socket.io')(http)
io.on('connection', function(socket){
console.log('a user connected')
socket.on('disconnect', function(){
console.log('user disconnected')
})
io.emit('message', json);
})


I'm not getting 'a user connected' log in Node Js console. Because var socket = io() is not working or what is the problem i don't know. Can i use socket.io in .ejs page? I need ejs and i also need socket.io in my application. Any help would be appreciated.


More From » node.js

 Answers
25

Here is the solution that worked fine for me.



Server-side



var express     = require('express');
var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var ejs = require('ejs');


app.set('view engine', 'ejs');
app.get('/', function(req, res) {
res.render('index');
});

io.on('connection', function(socket) {
console.log('a user connected');
socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
});

server.listen(process.env.PORT || 3000, function(){
console.log('app running');
});


And here is the index.ejs code



client-side



        <form action=>
<input id=m autocomplete=off /><button>Send</button>
</form>
<script src=/socket.io/socket.io.js></script>
<script src=https://code.jquery.com/jquery-1.11.1.js></script>
<script>
$(function () {
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
});
</script>

[#22951] Thursday, February 9, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
sienad

Total Points: 208
Total Questions: 100
Total Answers: 77

Location: Taiwan
Member since Mon, Sep 6, 2021
3 Years ago
;