作为笔记存储.

最近公司有这方面的使用需求。在网上查了一些资料后。得到了想要的结果。以下记录摘抄至网上资料

1.首先,服务端。项目NuGet直接引用Fleck类库。

code:

 1             //客户端url以及其对应的Socket对象字典2             IDictionary<string, IWebSocketConnection> dic_Sockets = new Dictionary<string, IWebSocketConnection>();3             //创建4             //本地测试的配置IP和端口。自行设置5             WebSocketServer server = new WebSocketServer("ws://127.0.0.1:8002");6             //出错后进行重启7             server.RestartAfterListenError = true;8 9             //开始监听
10             server.Start(socket =>
11             {
12                 socket.OnOpen = () =>   //连接建立事件
13                 {
14                     //获取客户端网页的url
15                     string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;
16                     dic_Sockets.Add(clientUrl, socket);
17                     Console.WriteLine(DateTime.Now.ToString() + "|服务器:和客户端网页:" + clientUrl + " 建立WebSock连接!");
18                 };
19                 socket.OnClose = () =>  //连接关闭事件
20                 {
21                     string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;
22                     //如果存在这个客户端,那么对这个socket进行移除
23                     if (dic_Sockets.ContainsKey(clientUrl))
24                     {
25                         //注:Fleck中有释放
26                         //关闭对象连接
27                         //if (dic_Sockets[clientUrl] != null)
28                         //{
29                         //dic_Sockets[clientUrl].Close();
30                         //}
31                         dic_Sockets.Remove(clientUrl);
32                     }
33                     Console.WriteLine(DateTime.Now.ToString() + "|服务器:和客户端网页:" + clientUrl + " 断开WebSock连接!");
34                 };
35                 socket.OnMessage = message =>  //接受客户端网页消息事件
36                 {
37                     string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;
38                     //socket.ConnectionInfo.Headers["UserId"] = message;
39                     string key = message.Replace("UserId=", "");
40                     dic_Sockets.Add(key, socket);
41                     Console.WriteLine(DateTime.Now.ToString() + "|服务器:【收到】来客户端网页:" + clientUrl + "的信息:\n" + message);
42                 };
43             });
44
45             Console.ReadKey();
46             foreach (var item in dic_Sockets.Values)
47             {
48                 if (item.IsAvailable == true)
49                 {
50                     item.Send("服务器消息:" + DateTime.Now.ToString());
51                 }
52             }
53
54
55
56
57             Console.ReadKey();
58
59             //关闭与客户端的所有的连接
60             foreach (var item in dic_Sockets.Values)
61             {
62                 if (item != null)
63                 {
64                     item.Close();
65                 }
66             }
67
68             Console.ReadKey();

2.客户端,直接建立一个Asp.net的一个Web空应用程序。在项目内直接新建一个Html文件

code:

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><title>Fleck WebSocket</title><style>.div1 {height: 88px;width: 173px;border: 1px solid blue;margin: auto;}h4 {margin: auto;}</style><script>var webSocket = {};//创建websocktfunction CreateWebSocket() {webSocket = new WebSocket("ws://127.0.0.1:8002");webSocket.onopen = WebSokectOnOpen;webSocket.onmessage = WebSocketOnMessage;webSocket.onclose = WebSocketOnClose;};//建立连接事件function WebSokectOnOpen() {//alert("已经打开连接!");webSocket.Send("Open");};//监听事件function WebSocketOnMessage(event) {//监听来自服务端的数据alert(event.data);};function WebSocketOnClose() {//监听来自客户端的数据alert('Close');};//发送事件function WebSocketSendMsg() {//获取text中的值var text = document.getElementById("Text1").value;//发送到服务器webSocket.send(text);};</script>
</head>
<body οnlοad="CreateWebSocket()"><div class="div1"><input type="text" id="Text1" /><input type="button" οnclick="WebSocketSendMsg()" value="发送数据至服务端" /></div>
</body>
</html>

3.服务端启动后,可通过OnOpen,OnClose,OnMessage,OnError等监听事件处理不同的业务。该技术用在一些特定的场景还是不错的。

就到这里!

Fleck WebSocket使用相关推荐

  1. c#--Fleck WebSocket使用 (C#版Websocket实例)

    推荐几篇文章: WebSocket 实战 C#版Websocket实例 C#工作总结(一):Fleck的WebSocket使用 1.服务端代码 using Fleck; using System; u ...

  2. Fleck webSocket

    NuGet 安装 Fleck 服务端 private  static IDictionary<string, IWebSocketConnection> dict_socket = new ...

  3. .net core Fleck WebSocket使用笔记

    socket帮助类 using Fleck; using KOTL_EvidenceService.Model; using System; using System.Collections.Gene ...

  4. Angular.js示例应用程序

    目录 介绍 演示应用程序概述 发布者端 网站端 Angular.Js简介 应用程序 服务 模块 依赖注入 路由 视图 控制器 作用域 指令 发布者 Angular.js网站 Require.js用法 ...

  5. C#工作总结(一):Fleck的WebSocket使用

    一.引子(Foreword) 最近公司里面要做窗体和网页交互的功能.网上找了一下资料,这里做一个简单的扩充和整理,部分内容可能是摘自其他博客,这里会注明出处和原文地址供大家和自己日后查阅. 二.基础知 ...

  6. fleck 客户端_C# Fleck的WebSocket使用

    (1). Web网页端代码 WebSocket测试 .div1 { height:88px; width:173px; border:1px solid blue; margin:auto; } h4 ...

  7. fleck 客户端_C#中使用Fleck实现WebSocket通信简例

    Fleck是一个开源的使用C#封装的WebSocket服务端工具库. 一.服务端搭建 这里选择在.net core 2.1框架下新建了一个控制台程序 在项目里使用NuGet引入Fleck包 NuGet ...

  8. C# WebSocket(Fleck) 客户端:html Winfrom

    目录 一.简介 二.服务端 1.新建项目 2.WebSocketHelper 3.Program 三.客户端 1.html 2.Winform 结束 一.简介 WebSocket 是一种在单个TCP连 ...

  9. [c#]使用Fleck实现简单的WebSocket含兼容低版本IE

    WebSocket是html5的一种协议,那么就表示要使用websocket客户端的浏览器就要支持html5. 对于不支持的使用flash去解决. Fleck源码地址 服务端采用的是Fleck,Fle ...

最新文章

  1. MLlib 编程指导-spark-1.2.0
  2. jwt:介绍以及创建token
  3. Linked List Cycle II - LeetCode
  4. 建立能持续处理请求的Client端改造
  5. html5语义化标签 加粗,html5标签 H5标签
  6. stringbuffer常用方法_Java 处理字符串常用的类:String StringBuilder StringBuffer
  7. 推荐系统评价指标综述
  8. Android开发笔记(二十五)assets目录下的文件读取
  9. typora字体颜色及字体背景颜色快捷方式(亲测实用有效)
  10. 来感受一下别人的密码
  11. 【工具】支付宝免费卡校验接口调用及常用银行简称整理
  12. Eclipse中文汉化包安装教程
  13. 合成大西瓜小游戏微信小程序源码/微信游戏小程序源码
  14. simplis汉化包_Simtrix.simplis中文教程.pdf
  15. 亦余心之所善兮,虽九死其犹未悔
  16. 被阿里耽误的虾米的一生
  17. html正方形符号,HTML特殊字符显示
  18. system 权限读取注册表HKEY_CURRENT_USER
  19. 一个工厂有m条流水线
  20. jquery操作表格 合并单元格

热门文章

  1. 怎样在html中设置首字母大写,javascript如何设置字符串首字母大写?
  2. 使用wangeditor遇到的坑,插入视频只显示音频
  3. 计算机数制与转换教案,《数制转换》教案
  4. HashMap什么时候出现红黑树
  5. m451dn linux驱动下载,惠普M451dn驱动下载
  6. GGSN与SGSN简介
  7. ue4 unreal4 json序列化工具 数据转成字符串等
  8. js:ajax post与get的区别,getjson的使用
  9. pythontrun什么意思_python 新手笔记一
  10. c++通讯录管理系统(函数,指针,结构体)