Ответы пользователя по тегу Node.js
  • Как правильно очистить память?

    @OVK2015
    Остается, потому что connect задействовано в setTimeout.
    Ответ написан
    2 комментария
  • Отложить, запретить прием POST NodeJs?

    @OVK2015
    var request = require('request');
    			var newRequest = request
    			(	
    				{
    					method: 'GET',
    					url: //Ваш URL
    				}
    			);
    			newRequest.pause();
    			newRequest.on('response', function(resp) 
    			{
    				if(resp.statusCode === 200)
    				{		
    					newRequest.resume();
    				}
    				else
    				{		
    					console.log('Что-то не так');
    					newRequest.end();	
    				}				
    			});	
    			newRequest.on('data', function(chunk) 
    			{			
    				answer += chunk;
    			});
    			newRequest.on('end', function()
    			{					
    				console.log('Получили данные');				
    			});
    Ответ написан
    4 комментария
  • Как скачивать изображения с сайта по мере их поступления?

    @OVK2015
    После обработки напильником

    var path = require('path');
    var request = require('request');
    var http = require('http');
    var fs = require('fs');
    
    var uploadDir = 'C:\/Node\/';
    var urlPrefix = 'http://e-shuushuu.net/images/';
    var regExpImageURLWrapper = new RegExp('(?:<img src="\/images\/thumbs\/)(.*?)"', 'gim');
    var pageAmount = 2;
    
    function getCurrentImage(imageUrl)
    {
    	var fileName = path.join(uploadDir, imageUrl);
    
    	var newRequest = request(urlPrefix + imageUrl);
    	newRequest.pause();
    	newRequest.on('response', function(resp) 
    	{
    		if((resp.statusCode === 200) && (resp.headers['content-type'].match('image')))
    		{			
    			newRequest.pipe(fs.createWriteStream(fileName));
    			newRequest.resume();
    			console.log(`Загружаем: ${imageUrl}`);			
    		}
    		else
    		{
    			var message =  
    				'\n********************************************************\n' +
    				'Ошибка загрузки файла ' + urlPrefix + imageUrl + '\n' +
    				'Код ошибки: ' + resp.statusCode + ' ' + resp.statusMessage + '; ' +
    				'Mime-type: ' + resp.headers['content-type'] + '\n' +
    				'********************************************************\n';
    			console.log(`${message}`);
    			newRequest.end();			
    		}				
    	});	
    	newRequest.on('end', function()
    	{		
    		console.log(`Загрузка завершена: ${imageUrl}`);			
    	});
    }
    
    for(var page_counter = 1; page_counter < pageAmount; page_counter++)
    {
        var newRequest = request
    	(
    	    'http://e-shuushuu.net/?page=' + page_counter,
    	    function (error, response, body)
    	    {
    	        if (!error && response.statusCode == 200)
    	        {
    	            while(match = regExpImageURLWrapper.exec(body))
    	            {	             
    	                getCurrentImage(match[1]);
    	                // break;
    	            }
    	        }
        	}
    	);
    }
    Ответ написан
  • Как связать Node.js и PHP?

    @OVK2015
    Или так:
    node:
    var ipaddress = '127.0.0.1';
    var port = 9000;
    function testWebSocketServerAndNotification()
    {
    	var WebSocketServer = require('ws').Server;
    	var path = require('path');
    	var notifier = require('node-notifier');
    
    	var message = 'Hello from Node.js';
    	var path2Image = 'e:\\MyWork\\NodeWorkBench\\TestApp\\image\\infoBalloon.png';
    
    	var wss = new WebSocketServer({host:ipaddress, port:port});
    
    	wss.broadcast = function(data) 
    	{
    	  for (var i in this.clients)
    	  {
    	    this.clients[i].send(data);
    	  }
    	};
    
    	wss.on('connection', function(ws) 
    	{
    	  ws.on('message', function(message) 
    	  {
    	    wss.broadcast(message);
    		notifier.notify
    		({
    			title: 'My notification',
    			message: `Message: '${message}'`,
    			sound: true, 
    			time: 5000, 
    			wait: true, 
    			icon: path.join(__dirname, 'image', 'notificationIcon.png'), 
    			contentImage: path2Image,
    		});    
    
    	  });
    	});
    
    	console.log('Слушаем адрес ' + ipaddress + ' на порте: ' + port + ' ...');
    }


    php:

    <?php
    	require_once "e:\\MyWork\\web\\Script\\PHP\\PHP_SocketIO_Client\\socket.io.php";
    	$socketio = new SocketIO();
    	echo iconv("UTF-8", "CP866", "exit для выхода\n");
    	while(true)
    	{
    		$input = fgets(STDIN);
    		if(trim($input) == "exit")
    		{
    			break;
    		}
    		if ($socketio->send("127.0.0.1", 9000, iconv("CP866", "UTF-8", trim($input))))
    		{
    		    echo iconv("UTF-8", "CP866", "Сообщение отправлено. Можете продолжать:\n");
    		} else 
    		{
    		    echo iconv("UTF-8", "CP866", "Какой-то сбой :(\n");
    		}
    	}	
    	exit("Jobe done");
    ?>


    socket.io.php брал отсюда https://github.com/psinetron/PHP_SocketIO_Client
    Ответ написан
    Комментировать