Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Completed #3

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules
node_modules/
*.iml
.idea
.env
38 changes: 33 additions & 5 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
var express = require("express");
var app = express();
var logger = require("morgan");
var bodyParser = require("body-parser");
var express = require("express");
var app = express();
var expressLayouts = require('express-ejs-layouts')
var logger = require("morgan");
var bodyParser = require("body-parser");
var port = process.env.PORT || 3000;
var router = express.Router();
// Need to connect the socket to the http server
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);


app.set("views", __dirname + "/views");
Expand All @@ -12,4 +17,27 @@ app.set('view engine', 'ejs');
app.use(express.static("public", __dirname + "/public"));
app.use(bodyParser.json());

// Write your code here


// LANDING PAGE
app.get('/', function(req, res) {
res.render('index');
});

// RECEIVE MESSAGE
app.post('/message', function(req, res) {
var message = req.body.message;
var name = req.body.name;

// send a new messsage to all clients side
io.sockets.emit('IncomingMessage' , {name: name, message: message})

// repsond to post requrest
var response = {message: "We got your message"}
res.status(200).json(repsonse)

});

server.listen(3000);

console.log('Server started on ' + port);
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
"morgan": "^1.6.1",
"socket.io": "1.0.6"
}
}
}
31 changes: 30 additions & 1 deletion public/js/index.js
Original file line number Diff line number Diff line change
@@ -1 +1,30 @@
// Write the front end javascript here
$( document ).ready(function() {

var base_url = document.domain;
var socket = io.connect(base_url);

$('#messageForm').on('submit', function(e){
e.preventDefault();

var name = $('#name').val();
var message = $('#outgoingMessage').val();

var data = {name: name, message: message};
$.ajax({
url: '/message',
type: 'POST',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(data)
}).done(function(data){
console.log(data);
})
})

//listening to incoming message
socket.on('IncomingMessage', function(data){
console.log(data)
$('#messages').prepend('<br>' + data.name + '</b><br/>' + data.message + '<hr / >');
})

})
2 changes: 1 addition & 1 deletion views/index.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/css/style.css">
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.7/socket.io.js"></script>
<script type="text/javascript" src="/js/index.js"></script>
</head>
<body>
Expand Down