C# 端
为了让数据的传输更加稳定,采取的策略是用Python当作websocket服务器C#端当作客户端来进行。
C# 上需要安装上WebSocketSharp插件
// See https://aka.ms/new-console-template for more information
using System;
using WebSocketSharp;
using System.Text.Json;
namespace WebSocket_Demo
{
class Program
{
private static void Main(string[] args)
{
Console.WriteLine("Websocket Demo");
WebSocket web = new WebSocket("ws://127.0.0.1:7890");
web.OnMessage += Web_OnMessage;
web.Connect();
Student_info student_demo = new Student_info();
student_demo.studentName = "小毛";
student_demo.id = 181000000;
student_demo.score = 91;
web.Send(JsonSerializer.Serialize(student_demo));
Console.ReadKey();
web.Close();
//Console.ReadLine();
}
private static void Web_OnMessage(object? sender, MessageEventArgs e)
{
Console.WriteLine("Received a message of " + e.ToString());
}
}
class Student_info
{
public string studentName { get; set; }
public int id { get; set; }
public int score { get; set; }
}
}
Python 代码
Python 主要是写一个websocket的server
import websockets
import asyncio
import json
global data
PORT = 7890
print("Running on PORT 7890")
async def echo(websocket,path):
global data
id = 0
print("A client just connected")
async for message in websocket:
data = json.loads(message)
print(data)
start_server = websockets.serve(echo,"127.0.0.1",PORT)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()