跳到主要内容

github/tai

公开

Tai · Windows 软件与网站使用时长统计。上游 Planshit/Tai 的源码镜像,非灵栈原创;MIT 许可。来源:https://github.com/Planshit/Tai 。本次为手动同步,暂不提供安装包。

浏览文件

WebServer.cs

75 行 · 1.8 KB历史下载
1using Core.Event;
2using Core.Librarys;
3using Core.Librarys.Browser;
4using Core.Models.WebPage;
5using Core.Servicers.Interfaces;
6using Newtonsoft.Json;
7using System;
8using System.Collections.Generic;
9using System.Diagnostics;
10using System.Linq;
11using System.Net;
12using System.Text;
13using System.Threading.Tasks;
14using WebSocketSharp;
15using WebSocketSharp.Server;
16
17namespace Core.Servicers.Instances
18{
19 public class WebServer : WebSocketBehavior, IWebServer
20 {
21 private WebSocketServer _webSocket;
22 private bool _isStart = false;
23
24 public void Start()
25 {
26 if (_isStart) return;
27 try
28 {
29 _webSocket = new WebSocketServer(8908, false);
30 _webSocket.AddWebSocketService<WebServer>("/TaiWebSentry");
31 _webSocket.Start();
32 _isStart = true;
33 }
34 catch (Exception ex)
35 {
36 Librarys.Logger.Error("无法启动浏览器服务," + ex);
37 }
38 }
39
40 public void Stop()
41 {
42 if (!_isStart) return;
43 _webSocket?.Stop();
44 _isStart = false;
45 }
46
47 public void SendMsg(string msg_)
48 {
49 try
50 {
51 if (!_isStart) return;
52
53 _webSocket.WebSocketServices.Broadcast(msg_);
54 }
55 catch (Exception ec)
56 {
57 Librarys.Logger.Error(ec.ToString());
58 }
59 }
60
61
62 protected override void OnMessage(MessageEventArgs e)
63 {
64 try
65 {
66 var log = JsonConvert.DeserializeObject<NotifyWeb>(e.Data);
67 WebSocketEvent.Invoke(log);
68 }
69 catch
70 {
71
72 }
73 }
74 }
75}