Здравствуйте.
Пытаюсь написать примитивный веб-сервер, но возникла проблема.
При запросе дублируются ответы, например,
joxi.ru/Vrw3yB9F9GLbrX
При работе по стандарту Server Side Events тоже возникли проблемы - не отправляются данные. Если быть точнее, то начинают отправляться только через какое-то время, и то если в дальнейшем идет отправка данных, если нет, то "test message" так и не отправится.
Ниже прилагаю код веб-сервера.
var
http = require( 'http' ),
fs = require( 'fs' );
http.createServer( function ( request, response ) {
switch( request.url ) {
case '/':
response.writeHead( 200, { 'Content-Type': 'text/html; charset=utf-8' } );
fs.readFile( 'index.html', function ( error, data ) {
response.end( data );
} );
break;
case '/js/jquery.js':
response.writeHead( 200, { 'Content-Type': 'application/javascript; charset=utf-8' } );
fs.readFile( 'js/jquery.js', function ( error, data ) {
response.end( data );
} );
break;
case '/js/script.js':
response.writeHead( 200, { 'Content-Type': 'application/javascript; charset=utf-8' } );
fs.readFile( 'js/script.js', function ( error, data ) {
response.end( data );
} );
break;
case '/data':
response.writeHead( 200, { 'Content-Type': 'text/event-stream' } );
response.write( 'data: test message\n\n' );
// setInterval( function () {
// response.write( 'data: '+( new Date ).toLocaleTimeString()+'\n\n' );
// }, 3000 );
break;
default:
response.writeHead( 404, { 'Content-Type': 'text/plain' } );
response.end();
break;
}
} ).listen( 3000, '127.0.0.1' );
index.html
<!DOCTYPE html>
<html>
<head>
<script src="/js/jquery.js"></script>
<script src="/js/script.js"></script>
<title>node.js</title>
</head>
<body>
</body>
</html>
js/script.js (закомментирован)
/*$( function () {
var sse = new EventSource( '/data' );
sse.message = function ( e ) {
console.log( e.data );
}
} );*/
js/jquery.js v2.1.3
Спасибо за помощь!