• Как использовать gulp/webpack в termux?

    @historydev Автор вопроса
    Редактирую файлы с непонятными расширениями
    5d81f9730faff260693901.jpeg
    Ответ написан
    Комментировать
  • Конвертированный Html текст хранить в бд или файлах?

    @historydev
    Редактирую файлы с непонятными расширениями
    Mongodb - бд которая сейвит данные в файлах.
    Проще сортировать, но потребует запросы при каждом рестарте страницы, упадёт скорость загрузки.Тоже самое и с mysql.
    Статика лучше,т.к. она уже есть и подгрузок не требует.
    Храните в .html файлах.
    Ответ написан
    Комментировать
  • Как подключится к серверу nodejs из андроид приложения построенного на webView?

    @historydev Автор вопроса, куратор тега JavaScript
    Редактирую файлы с непонятными расширениями
    как же я люблю cdn, всегда выручает, проблема была в /socket.io/socket.io.js
    Заменить на https://cdnjs.cloudflare.com/ajax/libs/socket.io/2...
    Ответ написан
    Комментировать
  • Как запретить доступ к серверу либо к его комнате определённому клиенту socket.io?

    @historydev Автор вопроса
    Редактирую файлы с непонятными расширениями
    Вот ответ, здесь получаем ip на клиенте и передаём его на сервер:
    $.getJSON('https://api.ipify.org?format=json', function(data){ 
      	socket.emit('banned',data.ip); 
    });

    На сервере принимаем и фильтруем:
    socket.on('banned', function(data) {
       		var ban = 'user.ip';
       		if(data == ban) {
       			io.emit('ban', 'Вы забанены!');
       			socket.disconnect(true);
       		}
       	});
    Ответ написан
  • Как синхронизировать действие для клиентов socket.io?

    @historydev Автор вопроса
    Редактирую файлы с непонятными расширениями
    Вот ответ
    Клиент:
    var host = 'http://localhost:3000/',socket = io(host),hp,hp2,connections,x;
    
          		
    $('.boss').click(function() {
         socket.emit('damage',54397);
         $('.hp-line').css("width", x+'%');
    });	
    socket.emit('hp line for all');
    socket.emit('forceDisconnect');
    
    socket.on('connections', function(data) {
    	connections = data;
    	$('.users-count').html(connections);	
    });
    
    socket.on('realtime hp', function(data) {
      hp = data;
      $('.hp-line').html(hp);
    });
    
    $('.hp-line').html(hp);
          	       	 
    socket.on('disconnect', function(data) {
      alert('Сервер заполнен'); 
     // window.location.replace(host + 'serverfull');
    });
    socket.on('hp line width', function(data) {
    	x = data;
    	$('.hp-line').css("width", x+'%');
    });
    
    
    window.onbeforeunload = function() { 
    	//return "Данные не сохранены. Точно перейти?";
    	
    };

    Сервер:
    var app = express();
    var http = require('http').Server(app);
    var connections=0,max_connections=2,port = 3000,maxhp = 300000,hp = maxhp,x;
    
    let io = require('socket.io')(http);
    
    app.use(express.static(__dirname + '/client'));
    
    app.get('/go', function(req,res) {
    	res.sendFile(__dirname + '/client/public/index.html');
    });
    
    http.listen(port, function() {
    	console.log('listening on *:' + port);
    });
    
    io.on('connection', function(socket) {
    			connections+=1;
    			io.emit('connections', connections);
    			
    			console.log('connected client:' + connections);
    			
    			
    			if(connections > max_connections) {
    				
    				socket.on('forceDisconnect', () => {
    						socket.disconnect(true);
    						console.log('Server full!' + max_connections + '/' + max_connections);
    				});
    			}
    			
    			socket.on( 'disconnect', () => { 
    				connections -= 1; 
    				console.log( 'client disconnected:' + connections);
    				io.emit('connections', connections);
    			});
    			
    			
    			
    			
    			socket.on('damage', function(data) {
    					hp = hp-data;
    					if(hp<=0) hp = maxhp;
    					x = hp/maxhp*100;
       			io.emit('realtime hp', hp);
       			if(hp>0) io.emit('hp line width', x);
       			if(hp<=0) io.emit('hp line width', 0);
       			console.log(hp);
       	});
       	socket.on('hp line for all', function(data) {
    					x = hp/maxhp*100;
       			io.emit('realtime hp', hp);
       			io.emit('hp line width', x);
       			if(hp<=0) io.emit('hp line width', 0);
       	});
       	
       	
    });
    var express = require('express');
    Ответ написан
    Комментировать
  • Есть счётчик клиентов socket.io на сервере, клиенты прибавляются но при отключении не убавляются, что делать?

    @historydev Автор вопроса
    Редактирую файлы с непонятными расширениями
    Вот так выглядит решение, forceDisconnect - отключает клиента, socket.on disconnect, ведёт счётчик, спасибо за помощь.
    connections+=1;
    			
    			if(connections > max_connections) {
    				connections-=1;
    				socket.on('forceDisconnect', () => {
    						socket.disconnect(true);
    						console.log('Server full!');
    				});
    			}
    			
    			socket.on( 'disconnect', () => { 
    				connections -= 1; 
    				console.log( 'client disconnected' ) ;
    				
    			});
    Ответ написан
    Комментировать