Всем привет. Есть чат на сокетах и node.js. Сделал, чтобы время сообщения отображалось, но это на клиенте. Как сделать на сервере?
Вот код клиента:
var socket = io.connect( 'http://localhost:8080' );
$( "#messageForm" ).submit( function(e) { e.preventDefault();
var nameVal = $( "#nameInput" ).val();
var msg = $( "#messageInput" ).val();
var canalVal = $( "#canalInput" ).val();
var t=new Date();
var h=t.getHours();
var m=t.getMinutes();
var s=t.getSeconds();
if(h < 10){
h = '0' + t.getHours();
}
if(m < 10){
m = '0' + t.getMinutes();
}
if(s < 10){
s = '0' + t.getSeconds();
}
var result=h+":"+m+":"+s;
if(msg) {
socket.emit( 'message', { name: nameVal, message: msg, canal: canalVal, timing: result } )
$( "#messageInput" ).val('');
// Ajax call for saving datas
$.ajax({
url: "./ajax/insertNewMessage.php",
type: "POST",
data: { name: nameVal, message: msg, canal: canalVal, timing: result },
success: function(data) {
}
});
}
});
И код сервера:
var socket = require( 'socket.io' ),
express = require( 'express' ),
http = require( 'http' ),
app = express(),
server = http.createServer( app ),
io = socket.listen( server ),
socketEmitLastCallTime = 0
io.sockets.on( 'connection', function( client ) {
client.broadcast.emit('clientNew', {clientNew : 'Пришел новый Вася!'});
client.on( 'message', function( data ) {
var aqwsde = Date.now() - socketEmitLastCallTime;
if (aqwsde > 1100){
socketEmitLastCallTime = Date.now(); //опять эта переменная не записывается, что не так?
console.log( 'Message received ' + data.timing + data.name + "1" + data.message + data.canal );
//client.broadcast.emit( 'message', { name: data.name, message: data.message } );
io.sockets.emit( 'message', { timing: data.timing, name: data.name, message: data.message
.replace(/&/g,"&")
.replace(/</g,"<")
.replace(/>/g,">")
.replace(/"/g,'"')
.replace(/'/g,"'")
.replace(/\//g,"⁄")
, canal: data.canal } );
}else{
console.log('TIMEEEEE!');
}
});
});
Решения в моем коде не требую, просто не пойму, как в клиенте передать переменную
timing: result
, которая по идеи должна быть на сервере. Как сделать?