@ruslite

Как на сервере вывести время?

Всем привет. Есть чат на сокетах и 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, которая по идеи должна быть на сервере. Как сделать?
  • Вопрос задан
  • 2813 просмотров
Решения вопроса 1
@ruslite Автор вопроса
Тупой был вопрос. Вот что значит сидеть и делать ночью.
Кому интересно:
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 t=new Date(),
			h=t.getHours(),
			m=t.getMinutes(),
			s=t.getSeconds(),
			result=h+":"+m+":"+s,
			aqwsde = Date.now() - socketEmitLastCallTime
		if (aqwsde > 1100){
		
		socketEmitLastCallTime = Date.now(); //опять эта переменная не записывается, что не так?
		console.log( 'Message received ' + result + data.name + "1" + data.message + data.canal );
            
		
		//client.broadcast.emit( 'message', { name: data.name, message: data.message } );
		io.sockets.emit( 'message', { result : result, 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!');
		}
	});
});

server.listen( 8080 );
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
q1t
@q1t
Date.now() возвращает что либо?
а так будет работать(как на клиенте)?
var dateObj = new Date();
var aqwsde = dateObj.getTime() - socketEmitLastCallTime;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы