What I am trying to do is when index.html sends a message back to the server, I want to call a function in app.js
called changeButton()
that will update a header color on index.html.
Here is my node.js file:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var express=require('express');
var tools = require('./assets/js/app.js');
app.use(express.static(__dirname + '/assets'));
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.on('chat message', function(msg){
console.log('message: ' + msg);
if(msg == "color") {
socket.emit("changeButton"); //working now
}
});
});
http.listen(3000, function(){
console.log('listening on localhost:3000');
});
app.js is in assets/js folder.
function getMessage() {
$('form').unbind('submit').bind('submit', function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
}
function changeButton() {
$('#status').css("background-color", "red");
}
Here is index.html
<!DOCTYPE html>
<html>
<head>
<!-- app.js -->
<script src="js/app.js"></script>
<!-- app.css -->
<link rel="stylesheet" type="text/css" href="css/app.css"/>
</head>
<body>
<h1 id="status"> Node Test </h1>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button onclick="getMessage();">Send</button>
</form>
<script>
var socket = io();
socket.on("changeButton", changeButton);
</script>
</body>
WORKING NOW!
THANKS!!!