推荐几篇文章:
WebSocket 实战
C#版Websocket实例
C#工作总结(一):Fleck的WebSocket使用

1.服务端代码

using Fleck;
using System;
using System.Collections.Generic;
using System.Linq;namespace WebSocketTest
{class Program{static void Main(string[] args){//第一步:为当前项目添加 nutget引用。 工具---nutget包管理器--管理解决方案的nutget程序包//第一步:为当前项目添加 nutget引用。 工具---nutget包管理器--管理解决方案的nutget程序包//第一步:为当前项目添加 nutget引用。 工具---nutget包管理器--管理解决方案的nutget程序包//注意:使用实例2之前,先将实例1模块代码注释掉//注意:使用实例2之前,先将实例1模块代码注释掉//注意:使用实例2之前,先将实例1模块代码注释掉//注意:使用实例2之前,先将实例1模块代码注释掉//注意:使用实例2之前,先将实例1模块代码注释掉#region 实例2Console.WriteLine(DateTime.Now.ToString() + "   | 实例2 使用说明:");Console.WriteLine("1.先启动本程序,在打开实例2页面建立连接。");Console.WriteLine("2.注意:本程序可以接收任意次数的客户端信息,本程序也可以向客户端发送任意次数的消息");FleckLog.Level = LogLevel.Debug;var allSockets = new List<IWebSocketConnection>();var server = new WebSocketServer("ws://0.0.0.0:7181");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);allSockets.ToList().ForEach(s => s.Send("客户端 Echo: " + message));};});var input = Console.ReadLine();while (input != "exit"){foreach (var socket in allSockets.ToList()){socket.Send("服务端: " + input);}input = Console.ReadLine();}#endregion//注意:使用实例1之前,先将实例2模块代码注释掉//注意:使用实例1之前,先将实例2模块代码注释掉//注意:使用实例1之前,先将实例2模块代码注释掉//注意:使用实例1之前,先将实例2模块代码注释掉//注意:使用实例1之前,先将实例2模块代码注释掉#region 实例1//Console.WriteLine(DateTime.Now.ToString() + "   | 实例1 使用说明:");//Console.WriteLine("1.先启动本程序,在打开实例1页面建立连接。");//Console.WriteLine("2.注意:本程序可以接收任意次数的客户端信息,但是本程序只能向客户端发送一次信息,然后本程序自动关闭。");客户端url以及其对应的Socket对象字典//IDictionary<string, IWebSocketConnection> dic_Sockets = new Dictionary<string, IWebSocketConnection>();创建//WebSocketServer server = new WebSocketServer("ws://0.0.0.0:30000");//监听所有的的地址出错后进行重启//server.RestartAfterListenError = true;开始监听//server.Start(socket =>//{//    socket.OnOpen = () =>   //连接建立事件//    {//        //获取客户端网页的url//        string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;//        dic_Sockets.Add(clientUrl, socket);//        Console.WriteLine(DateTime.Now.ToString() + "|服务器:和客户端网页:" + clientUrl + " 建立WebSock连接!");//    };//    socket.OnClose = () =>  //连接关闭事件//    {//        string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;//        //如果存在这个客户端,那么对这个socket进行移除//        if (dic_Sockets.ContainsKey(clientUrl))//        {//            //注:Fleck中有释放//            //关闭对象连接 //            //if (dic_Sockets[clientUrl] != null)//            //{//            //dic_Sockets[clientUrl].Close();//            //}//            dic_Sockets.Remove(clientUrl);//        }//        Console.WriteLine(DateTime.Now.ToString() + "|服务器:和客户端网页:" + clientUrl + " 断开WebSock连接!");//    };//    socket.OnMessage = message =>  //接受客户端网页消息事件//    {//        string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;//        Console.WriteLine(DateTime.Now.ToString() + "|服务器:【收到】来客户端网页:" + clientUrl + "的信息:\n" + message);//    };//});//string userInput=Console.ReadLine();//foreach (var item in dic_Sockets.Values)//{//    if (item.IsAvailable == true)//    {//        item.Send("客户端:【收到】来服务端控制台程序:" + DateTime.Now.ToString()+"      ,服务端内容:   "+ userInput);//    }//}//Console.ReadLine();关闭与客户端的所有的连接//foreach (var item in dic_Sockets.Values)//{//    if (item != null)//    {//        item.Close();//    }//}//Console.ReadKey();#endregion}}
}

.
.
.

实例2页面代码

<!DOCTYPE html>
<html lang="zh" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>websocket client</title><script type="text/javascript">var start = function () {var inc = document.getElementById('incomming');var wsImpl = window.WebSocket || window.MozWebSocket;var form = document.getElementById('sendForm');var input = document.getElementById('sendText');inc.innerHTML += "等待连接服务端 connecting to server ..<br/>";// create a new websocket and connectwindow.ws = new wsImpl('ws://localhost:7181/');// when data is comming from the server, this metod is calledws.onmessage = function (evt) {inc.innerHTML += evt.data + '<br/>';};// when the connection is established, this method is calledws.onopen = function () {inc.innerHTML += '与服务端已经连接上.. connection open<br/>';};// when the connection is closed, this method is calledws.onclose = function () {inc.innerHTML += '与服务端已经断开连接.. connection closed<br/>';}form.addEventListener('submit', function (e) {e.preventDefault();var val = input.value;ws.send(val);input.value = "";});}window.onload = start;</script>
</head>
<body><a href="https://www.cnblogs.com/cjm123/p/9674506.html" target="_blank">C#版Websocket实例---原文链接</a><a href="http://www.ibm.com/developerworks/cn/java/j-lo-WebSocket/" target="_blank">参考资料(介绍的非常详细全面,推荐)</a><form id="sendForm"><input id="sendText" placeholder="输入消息,回车发送" /></form><pre id="incomming"></pre>
</body>
</html>

.
.
.

实例1页面代码

<!DOCTYPE html>
<html lang="zh" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>WebSocket测试</title><style>.div1 {height: 200px;width: 300px;border: 1px solid blue;margin: auto;}h4 {margin: auto;}</style><script>var webSocket = {};//调用创建websockt方法CreateWebSocket();//创建websocktfunction CreateWebSocket() {webSocket = new WebSocket("ws://127.0.0.1:30000");webSocket.onopen = WebSokectOnOpen;webSocket.onmessage = WebSocketOnMessage;webSocket.onclose = WebSocketOnClose;};//建立连接事件function WebSokectOnOpen() {alert("已经打开连接!");webSocket.Send("WebSocketCreate Success!");};//监听事件function WebSocketOnMessage(event) {//监听来自客户端的数据alert(event.data);};function WebSocketOnClose() {//监听来自客户端的数据alert('和服务器断开连接');};//发送事件function WebSocketSendMsg() {//获取text中的值var text = document.getElementById("Text1").value;//发送到服务器webSocket.send(text);};</script>
</head>
<body οnlοad="CreateWebSocket()"><div class="div1"><a href="https://blog.csdn.net/ZslLoveMiwa/article/details/80247739" target="_blank">C#工作总结(一):Fleck的WebSocket使用--原文链接</a><h4>CSDN博客</h4><h4>By:LoveMiw</h4><input type="text" id="Text1" /><input type="button" onclick="WebSocketSendMsg()" value="发送数据" /></div>
</body>
</html>

c#--Fleck WebSocket使用 (C#版Websocket实例)相关推荐

  1. java的websocket_java 实现websocket的两种方式实例详解

    一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring与we ...

  2. Java版WebSocket消息推送系统搭建

    Java版WebSocket消息推送系统搭建 最近在做消息推送,网上查了一些资料,开始想的是用MQ来做,后面发现用WebSocket来做的话感觉应该要简单点,话不多说,准备撸代码. 后端核心代码 /* ...

  3. Springboot整合WebSocket实现网页版聊天,快来围观!

    前几天写了一篇<SpringBoot快速入门>一文,然后周末趁着有时间,在这个Springboot框架基础上整合了WebSocket技术写了一个网页版聊天功能. 如果小伙伴找不到那套框架了 ...

  4. html5 websocket java 聊天室_如何利用WebSocket实现网页版聊天室

    花了将近一周的时间终于完成了利用WebSocket完成网页版聊天室这个小demo,期间还走过了一段"看似弯曲"的道路,但是我想其实也不算是弯路吧,因为你走过的路必将留下你的足迹.这 ...

  5. 认识HTML5的WebSocket 认识HTML5的WebSocket

    2019独角兽企业重金招聘Python工程师标准>>> 在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API.WebSocket提供了一个受欢迎的技 ...

  6. java websocket注解_【websocket】spring boot 集成 websocket 的四种方式

    集成 websocket 的四种方案 1. 原生注解 pom.xml org.springframework.boot spring-boot-starter-websocket WebSocketC ...

  7. 【Web通信】WebSocket详解:WebSocket是什么?如何使用WebSocket?在Vue中封装WebSocket(心跳监测)。nginx配置websocket。

    一.WebSocket相关定义 1. WebSocket定义 WebSocket 是一种基于TCP的全双工通信协议,它提供了一种在浏览器和服务器之间建立持久连接来交换数据的方法.数据可以作为" ...

  8. WebSocket 学习之认识websocket

    一:背景介绍 近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据. 我们知道,传统的HTT ...

  9. WebSocket协议入门:WebSocket API

    HTML5连接性领域包括WebSocket.服务器发送事件和跨文档消息传递(Cross-Document Messaging)等技术.在HTML5之前,浏览器窗口和框架之间的通信由于安全的原因而受到限 ...

最新文章

  1. python分句_Python循环中的分句,继续和其他子句
  2. VS工作笔记-C++在release模式下可以进行调试
  3. html5游戏制作入门系列教程(四)
  4. [zz]C#中的Type类和Assembly类
  5. C#制作不规则窗体的简单方法
  6. Linux 进程热升级
  7. 软件观念革命:交互设计精髓_电子沙盘设计主要分为哪几种?
  8. 广西南宁机器人比赛_广西南宁中小学生机器人竞赛精彩纷呈
  9. 博取仪器3D产品配置
  10. Python float()函数
  11. 计算机存储单位 KB,MB,GB,TB,PB
  12. python axes_对Numpy中轴(axes)的解释(汉化版)
  13. springcloudAlibaba设置allow-bean-definition-overriding=true不生效问题解决
  14. MSP430f2619学习—串口通信
  15. win7 计算机不显示u盘重装系统,u盘重装系统win7步骤和详细教程
  16. 猜数字游戏实现(详解)
  17. 上位机编程工控控件全览,漂亮工控控件
  18. 51单片机教程:按键输入、矩阵按键(按键巧用)proteus仿真+keil
  19. 安装win7系统所遇到的若干问题
  20. Python字典大总结

热门文章

  1. Dijkstra算法和Floyd算法超详解以及区别
  2. oracle 抽样_利用ORACLE实现数据抽样(sample block)
  3. php股票网站源代码,基于php的新三板实时股票信息接口调用代码实例
  4. 【蓝桥杯-单片机学习笔记(十五)】NE555频率测量
  5. 什么打印软件比较好用?可以打印资料的网上打印平台
  6. 重磅!中国芯片新锐50强榜单发布,上海20家、北京仅4家!(附:详细解读)...
  7. Zcash中的zk-SNARK statements
  8. Class的基本语法
  9. android重力感应横竖屏,Android开发 apk强制横竖屏
  10. 不允许对不可访问的基类 类型强制转换 c++