C#使用websocket和html通信
C# websocket服务部分
创建package后需要在Nuget里添加Fleck依赖
----VS如果访问不到Nuget下载地址请移步:https://www.nuget.org/
----搜索Fleck,这个就是咯,下载后安装离线包即可:
废话不多说,直接上代码
static List<IWebSocketConnection> allSockets = null;
public static void webSocket() {
FleckLog.Level = LogLevel.Debug;
allSockets = new List<IWebSocketConnection>();
var server = new WebSocketServer("ws://192.168.1.112:64325");
server.Start(socket =>
{
socket.OnOpen = () =>
{
Console.WriteLine("Open!");
allSockets.Add(socket);
};
socket.OnClose = () =>
{
Console.WriteLine("Close!");
allSockets.Remove(socket);
};
socket.OnMessage = message =>
{
Console.WriteLine(message);
};
});
var input = Console.ReadLine();
while (input != "exit")
{
foreach (var socket in allSockets.ToList())
{
socket.Send(input);
}
input = Console.ReadLine();
}
}
别忘了添加引用!
HTML websocket 部分
页面加载的时候需使用websocket和c#程序建立tcp通信,上代码:
<script type="text/javascript">
var ws = null; //实现WebSocket
layui.use('layer',function(){
if('WebSocket' in window){
ws = new WebSocket("ws://192.168.1.112:64325");
}else {
alert("浏览器不支持");
}
ws.onopen = function (msg) {
ws.send("TCP连接建立成功");
console.log(msg)
};
ws.onmessage = function (msg) {
//接受的消息,接收到后调接口写入数据库
console.log("接收:"+msg.data)
}
ws.onClose = function(msg){
console.log(msg)
}
ws.onerror = function (err) {
console.log(err)
}
});
</script>
效果:
服务启动:
页面启动,建立通信
c#接收到连接信息
验证:
c# 输入...回车
HTML
HTML也可以通过
ws.send("xxxxxx");
发送信息给c#