Здравствуйте пытаюсь решить такую задачу, на веб странице реализовал soket клиент на js, и socket server, сокет сервер получает данные от бесперебойника сокет клиент принимает эти данные и выводит на экран, но вот есть такая проблема, что после некоторого числа перезагрузки сокет клиент выдает сообщение “Error sending to a client”. Еще хотелось бы узнать есть ли более элегантный или автоматизированный способ запуска батника то есть не в ручную или вообще обойтись без батника, что бы при старте windows сокет работал. вот что в общем имею.
батник
c:\python27/python c:\python\websocket2.py
клиент
<script language="javascript" type="text/javascript">
    var edit=0;
        $( "#target" ).click(function() {
                if(edit==1){
                    $('li #target').text('Редактировать взвешиванием');
                    edit=0;
                }else{
                    $('li #target').text('Редактировать в ручную');
                    edit=1
                }
            });
    var wsUri = "ws://127.0.0.1:9999";
    var output;
    function init() {
        output = $("#id_choice_text");
        //$("#id_choice_text").val("Логин");
        testWebSocket();
    }
    function testWebSocket() {
        var websocket = new WebSocket(wsUri);
        websocket.onmessage = function (evt) {
            onMessage(evt)
        };
    }
    function onMessage(evt) {
        writeToScreen(
                evt.data.substring(1, 6)//'<li>Напряжение на входе:                       <span style="color: red;">' + evt.data.substring(1,6) + '</span></li>'
                //'<li>Аварийное напряжение:                         <span style="color: red;">' + evt.data.substring(7,12) + '</span></li>'+
                //'<li>Напряжение на выходе:                         <span style="color: red;">' + evt.data.substring(13,18) + '</span></li>'+
                //'<li>Награзка навыходе:                   <span style="color: red;">' + evt.data.substring(19,22) + '</span></li>'+
                //'<li>Частота напряжения на выходе: <span style="color: red;">' + evt.data.substring(23,27) + '</span></li>'+
                //'<li>Напряжение батареи:            <span style="color: red;">' + evt.data.substring(28,32) + '</span></li>'+
                //'<li>Температура UPS:                   <span style="color: red;">' + evt.data.substring(32,37) + '</span></li>'
        );
    }
    function writeToScreen(message) {
        var pre = document.createElement("p");
        $(pre).addClass('del');
        pre.style.wordWrap = "break-word";
        pre.innerHTML = message;
        $('.del').remove();
        if(edit==1){
        }
        output.val(message);
    }
    window.addEventListener("load", init, false)
</script>
сервер
import serial
import sys
sys.path.append('../..')
import time
from SingleSocket.Output import Output
SOCKET_PORT = 9999
SOCKET_HOST = '127.0.0.1'
stream = Output(host=SOCKET_HOST,
                port=SOCKET_PORT,
                web=True)
def starts():
    
    port = stream.start()
    print('Emitting port: {:d}'.format(port))
    if not stream.running:
        exit(0)
    ser = serial.Serial('COM4', 2400, timeout=0)
    while ser:
		try:
            
			ser.write(b"Q1\r")
			ups1= ser.read(100)
			ser.timeout = 1
			#ser.open()
			print(ups1)
			stream.append_msg(ups1)
			#time.sleep(2)
		except socket.error, msg:
			stream.stop()
			ser.close()
			ser.open()
			starts()
starts()