首页 > 代码库 > 基于python的websocket开发,tomcat日志web页面实时打印监控案例
基于python的websocket开发,tomcat日志web页面实时打印监控案例
web socket 接收器:webSocket.py
相关依赖
# pip install bottle gevent gevent-websocket argparse
from bottle import request, Bottle, abortfrom geventwebsocket import WebSocketErrorfrom gevent.pywsgi import WSGIServerfrom geventwebsocket.handler import WebSocketHandlerapp = Bottle()users = set()@app.get(‘/websocket/‘)def handle_websocket(): wsock = request.environ.get(‘wsgi.websocket‘) users.add(wsock) if not wsock: abort(400, ‘Expected WebSocket request.‘) while True: try: message = wsock.receive() except WebSocketError: break print u"user:%s" % (len(users)) if message: for user in users: try: user.send(message) except WebSocketError: print u‘kill‘ users.remove(wsock)server = WSGIServer(("0.0.0.0", 1019), app,handler_class=WebSocketHandler)server.serve_forever()
服务端:logs.py
相关依赖:
pip install websocket-client
import subprocessfrom websocket import create_connectionws_server = "ws://172.18.30.19:1010/websocket/"ws = create_connection(ws_server)command=‘sshpass -p 123456 ssh 192.168.20.200 -p 32776 -o StrictHostKeychecking=no "tail -f /root/tomcat-8.0/logs/catalina.out"‘popen=subprocess.Popen(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)while True: line=popen.stdout.readline().strip() ws.send(line)
应用前端:logs.html
<!DOCTYPE html><html><head> <title>LOG+</title> <style> html, body { font: normal 0.9em arial, helvetica; } #log { width: 440px; height: 200px; border: 1px solid #7F9DB9; overflow: auto; } #msg { width: 330px; } </style> <script> var socket; function init() { var host = "ws://172.18.30.19:1010/websocket/"; try { socket = new WebSocket(host); socket.onopen = function (msg) { log(‘Connected‘); }; socket.onmessage = function (msg) { log(msg.data); }; socket.onclose = function (msg) { log("Lose Connection!"); }; } catch (ex) { log(ex); } $("msg").focus(); } function send() { var txt, msg; txt = $("msg"); msg = txt.value; if (!msg) { alert("Message can not be empty"); return; } txt.value = ""; txt.focus(); try { socket.send(msg); } catch (ex) { log(ex); } } window.onbeforeunload = function () { try { socket.send(‘quit‘); socket.close(); socket = null; } catch (ex) { log(ex); } }; function $(id) { return document.getElementById(id); } function log(msg) { $("log").innerHTML += "<br>" + msg; } function onkey(event) { if (event.keyCode == 13) { send(); } } </script></head><body onl oad="init()"><h3>WebSocket</h3><br><br><div id="log"></div><input id="msg" type="textbox" onkeypress="onkey(event)"/><button onclick="send()">发送</button></body></html>
测试一把:
结束语:
前端 ——》 接收器 《—— 服务端
以需求用例为基,Case&Coding两条线并行,服务(M)&消费(VC)分离,单元、接口、功能、集成四层质量管理,自动化集成、测试、交付全程支持。 3个大阶段(需求分析阶段、研发准备阶段、研发测试阶段)16个小历程(*)确定好边界,明确好对接产物,做好服务管理。
基于python的websocket开发,tomcat日志web页面实时打印监控案例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。