Skip to content
Snippets Groups Projects
Commit c04b6afd authored by Marcel Kehrberg's avatar Marcel Kehrberg
Browse files

Schlechter Server

parent 4cb693b4
Branches Browser_Addon
No related tags found
No related merge requests found
Showing
with 356 additions and 25 deletions
let socket;
let trackingAktiv = false;
let isConnected = false;
function connectWebSocket() {
if (isConnected) {
console.log("Bereits verbunden.");
return;
}
// Versuche, eine Verbindung herzustellen
socket = new WebSocket("ws://localhost:8080");
socket.onopen = function() {
console.log("Verbunden mit der WPF-Anwendung.");
isConnected = true; // Markiere als verbunden
};
// Empfang von Nachrichten
socket.onmessage = function(event) {
const message = JSON.parse(event.data);
console.log("Nachricht empfangen: ", message);
navigator.clipboard.writeText("yea");
// if(message.action === "sendJsonContent") {
// navigator.clipboard.writeText("yea");
//}
/*if (message.action === "startTracking" && message.status === true) {
console.log("Tracking gestartet.");
trackingAktiv = true;
} else if (message.action === "stopTracking" && message.status === false) {
console.log("Tracking gestoppt.");
trackingAktiv = false;
}*/
};
socket.onclose = function() {
console.log("Verbindung geschlossen.");
isConnected = false;
// Versuche, nach einer kurzen Zeit erneut eine Verbindung herzustellen
setTimeout(connectWebSocket, 5000); // 5 Sekunden warten, bevor erneut versucht wird
};
socket.onerror = function(error) {
console.error("WebSocket Fehler:", error);
socket.close(); // Schließe den Socket, um den Fehler zu behandeln und es erneut zu versuchen
};
}
connectWebSocket();
browser.tabs.onCreated.addListener((tab) => {
checkUrl(tab.url);
});
browser.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
checkUrl(tab.url);
});
function checkUrl() {
if(trackingAktiv) {
} else {
}
};
\ No newline at end of file
{
"manifest_version": 3,
"name": "URL-Kopierer",
"version": "1.0",
"description": "Kopiert die URL des aktiven Tabs in die Zwischenablage.",
"permissions": ["tabs", "activeTab", "scripting", "clipboardWrite"],
"host_permissions": ["<all_urls>"],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"action": {
"default_popup": "popup.html",
"default_icon": "icon.png"
},
"content_security_policy": {
"extension_pages": "script-src 'self'; object-src 'self'; connect-src 'self' ws://localhost:8080"
}
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title>URL Kopierer</title>
<script src="app.js"></script>
<style>
body { font-family: Arial, sans-serif; margin: 10px; text-align: center; }
button { padding: 10px 20px; margin-top: 20px; cursor: pointer; }
</style>
</head>
<body>
<h1>URL kopieren</h1>
<button id="copy-url">Kopiere URL</button>
<!-- Overlay HTML -->
<div id="block-overlay" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: black; z-index: 9999; pointer-events: auto; display: none;">
<!-- Optional: Text oder Ladebalken anzeigen -->
</div>
</body>
</html>
using System.IO;
using System.Net.Sockets;
using System.Text;
namespace InnoLabProjektDektopApp
{
public static class WebSocketClient
{
private static TcpClient _client;
private static NetworkStream _stream;
private static bool _isConnected = false;
// Diese Methode stellt die Verbindung nur einmal her (wenn sie noch nicht besteht)
public static void ConnectToServer(string serverAddress, int port)
{
if (_isConnected) return; // Verhindert mehrfache Verbindungen
try
{
_client = new TcpClient(serverAddress, port); // Server und Port anpassen
_stream = _client.GetStream();
_isConnected = true;
Console.WriteLine("Verbindung zum WebSocket-Server hergestellt.");
}
catch (Exception ex)
{
Console.WriteLine($"Fehler beim Verbinden: {ex.Message}");
}
}
// Funktion, um eine Nachricht zu senden
public static void SendMessage(string message)
{
if (_stream == null)
{
Console.WriteLine("Stream nicht verfügbar.");
return;
}
try
{
byte[] messageBytes = Encoding.UTF8.GetBytes(message);
_stream.Write(messageBytes, 0, messageBytes.Length);
Console.WriteLine($"Nachricht gesendet: {message}");
}
catch (Exception ex)
{
Console.WriteLine($"Fehler beim Senden der Nachricht: {ex.Message}");
}
}
// Funktion, um das Tracking zu starten
public static void StartTracking()
{
// Sicherstellen, dass wir verbunden sind, bevor wir eine Nachricht senden
ConnectToServer("localhost", 8080);
SendMessage("{\"action\": \"startTracking\", \"status\": true}");
SendJsonFile(@"F:\Dokumente\Schule\Studium\InoLab\procrastinator\InnoLabProjektDektopApp\InnoLabProjektDektopApp\bin\Debug\net8.0-windows\Assets\distractingWebsites.json");
}
// Funktion, um das Tracking zu stoppen
public static void StopTracking()
{
// Sicherstellen, dass wir verbunden sind, bevor wir eine Nachricht senden
ConnectToServer("localhost", 8080);
SendMessage("{\"action\": \"stopTracking\", \"status\": false}");
}
// Funktion zum Schließen der Verbindung
public static void CloseConnection()
{
_stream?.Close();
_client?.Close();
_isConnected = false;
Console.WriteLine("Verbindung geschlossen.");
}
// Funktion, um die JSON-Datei zu laden und zu senden
public static void SendJsonFile(string filePath)
{
// Überprüfen, ob die Datei existiert
if (!File.Exists(filePath))
{
Console.WriteLine("Datei existiert nicht.");
return;
}
// Dateiinhalt lesen
string jsonContent = File.ReadAllText(filePath);
// Nachricht senden (JSON-Inhalt)
//SendMessage(jsonContent);
string message = $"{{\"action\": \"sendJsonContent\", \"status\": true, \"content\": {jsonContent}}}";
SendMessage(message);
}
}
}
using System.Net;
using System.Net.WebSockets;
using System.Text;
namespace InnoLabProjektDektopApp
{
public static class WebSocketServer
{
private static HttpListener _listener = new HttpListener();
private static WebSocket _webSocket;
public static async void StartServer(int port)
{
_listener.Prefixes.Add($"http://localhost:{port}/");
_listener.Start();
Console.WriteLine($"WebSocket-Server läuft auf ws://localhost:{port}");
while (true)
{
HttpListenerContext context = await _listener.GetContextAsync();
if (context.Request.IsWebSocketRequest)
{
HttpListenerWebSocketContext wsContext = await context.AcceptWebSocketAsync(null);
_webSocket = wsContext.WebSocket;
Console.WriteLine("WebSocket-Verbindung akzeptiert.");
await ReceiveMessages();
}
else
{
context.Response.StatusCode = 400;
context.Response.Close();
}
}
}
private static async Task ReceiveMessages()
{
byte[] buffer = new byte[1024];
while (_webSocket.State == WebSocketState.Open)
{
WebSocketReceiveResult result = await _webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
string message = Encoding.UTF8.GetString(buffer, 0, result.Count);
Console.WriteLine($"Nachricht empfangen: {message}");
await SendMessageToClient($"Empfangen: {message}");
}
}
public static async Task SendMessageToClient(string message)
{
if (_webSocket != null && _webSocket.State == WebSocketState.Open)
{
byte[] messageBytes = Encoding.UTF8.GetBytes(message);
await _webSocket.SendAsync(new ArraySegment<byte>(messageBytes), WebSocketMessageType.Text, true, CancellationToken.None);
Console.WriteLine($"Nachricht gesendet: {message}");
}
}
public static void StopServer()
{
_listener.Stop();
_webSocket?.CloseAsync(WebSocketCloseStatus.NormalClosure, "Server gestoppt", CancellationToken.None);
Console.WriteLine("WebSocket-Server gestoppt.");
}
}
}
<Page x:Class="InnoLabProjektDektopApp.Screens.Test.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:InnoLabProjektDektopApp.Screens.Test"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
Title="Page1">
<Grid>
<Button Content="Start" HorizontalAlignment="Left" Margin="129,346,0,0" VerticalAlignment="Top" Click="Start"/>
<Button Content="Send" HorizontalAlignment="Left" Margin="505,356,0,0" VerticalAlignment="Top" Click="Send"/>
<Button Content="Button" HorizontalAlignment="Left" Margin="306,366,0,0" VerticalAlignment="Top" Click="Connect"/>
</Grid>
</Page>
using System.Windows;
using System.Windows.Controls;
namespace InnoLabProjektDektopApp.Screens.Test
{
/// <summary>
/// Interaktionslogik für Page1.xaml
/// </summary>
public partial class Page1 : Page
{
public Page1()
{
InitializeComponent();
}
private void Start(object sender, RoutedEventArgs e)
{
WebSocketServer.StartServer(8080);
}
private void Send(object sender, RoutedEventArgs e)
{
WebSocketServer.SendMessageToClient("Test");
}
private void Connect(object sender, RoutedEventArgs e)
{
WebSocketClient.ConnectToServer("localhost", 8080);
}
}
}
{
"format": 1,
"restore": {
"D:\\Studium\\7. Semester\\InnoLab\\CoFlowCURRENT\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj": {}
"F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj": {}
},
"projects": {
"D:\\Studium\\7. Semester\\InnoLab\\CoFlowCURRENT\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj": {
"F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Studium\\7. Semester\\InnoLab\\CoFlowCURRENT\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"projectUniqueName": "F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"projectName": "CoFlow",
"projectPath": "D:\\Studium\\7. Semester\\InnoLab\\CoFlowCURRENT\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"packagesPath": "C:\\Users\\Sandra\\.nuget\\packages\\",
"outputPath": "D:\\Studium\\7. Semester\\InnoLab\\CoFlowCURRENT\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\obj\\",
"projectPath": "F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"packagesPath": "C:\\Users\\Marcel\\.nuget\\packages\\",
"outputPath": "F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Sandra\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Users\\Marcel\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
......@@ -39,19 +43,24 @@
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"SdkAnalysisLevel": "9.0.100"
},
"frameworks": {
"net8.0-windows7.0": {
"targetAlias": "net8.0-windows",
"dependencies": {
"Hardcodet.NotifyIcon.Wpf": {
"target": "Package",
"version": "[2.0.1, )"
},
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
},
"System.Management": {
"target": "Package",
"version": "[9.0.0, )"
"version": "[9.0.1, )"
}
},
"imports": [
......@@ -73,7 +82,7 @@
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.204/PortableRuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.101/PortableRuntimeIdentifierGraph.json"
}
}
}
......
......@@ -5,11 +5,12 @@
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Sandra\.nuget\packages\</NuGetPackageFolders>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Marcel\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.9.2</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.2</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Sandra\.nuget\packages\" />
<SourceRoot Include="C:\Users\Marcel\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>
\ No newline at end of file
......@@ -192,23 +192,23 @@
]
},
"packageFolders": {
"C:\\Users\\Phil\\.nuget\\packages\\": {},
"C:\\Users\\Marcel\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Phil\\Source\\Repos\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"projectUniqueName": "F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"projectName": "CoFlow",
"projectPath": "C:\\Users\\Phil\\Source\\Repos\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"packagesPath": "C:\\Users\\Phil\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Phil\\Source\\Repos\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\obj\\",
"projectPath": "F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"packagesPath": "C:\\Users\\Marcel\\.nuget\\packages\\",
"outputPath": "F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Phil\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Users\\Marcel\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
......@@ -273,7 +273,7 @@
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.103/PortableRuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.101/PortableRuntimeIdentifierGraph.json"
}
}
}
......
{
"version": 2,
"dgSpecHash": "Kmy9okVA0ycUSqwGQryy3ZTkTmkuXt8C1YtXwYWrqeeHz13Ta0KvST9u1skCApovxIhHqE9KXzSMxQ/eZ3nJqg==",
"dgSpecHash": "5H+NNmQwbKI=",
"success": true,
"projectFilePath": "D:\\Studium\\7. Semester\\InnoLab\\CoFlowCURRENT\\CoFlow\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"projectFilePath": "F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp.csproj",
"expectedPackageFiles": [
"C:\\Users\\Sandra\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\Sandra\\.nuget\\packages\\system.codedom\\9.0.0\\system.codedom.9.0.0.nupkg.sha512",
"C:\\Users\\Sandra\\.nuget\\packages\\system.management\\9.0.0\\system.management.9.0.0.nupkg.sha512"
"C:\\Users\\Marcel\\.nuget\\packages\\hardcodet.notifyicon.wpf\\2.0.1\\hardcodet.notifyicon.wpf.2.0.1.nupkg.sha512",
"C:\\Users\\Marcel\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\Marcel\\.nuget\\packages\\system.codedom\\9.0.1\\system.codedom.9.0.1.nupkg.sha512",
"C:\\Users\\Marcel\\.nuget\\packages\\system.management\\9.0.1\\system.management.9.0.1.nupkg.sha512"
],
"logs": []
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment