Форум сайта python.su
Здравствуйте пытаюсь решить такую задачу, на веб странице реализовал 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()
Отредактировано serrrgggeee (Фев. 18, 2016 10:19:07)
Офлайн