[c#]使用Fleck实现简单的WebSocket含兼容低版本IE
WebSocket是html5的一种协议,那么就表示要使用websocket客户端的浏览器就要支持html5。
对于不支持的使用flash去解决。
Fleck源码地址
服务端采用的是Fleck,Fleck的好处就是简单方便,作者已经进行了完整的封装,可以根据自己情况进行修改
兼容低版本IE
使用flash实现兼容低版本IE
websocket 连接集合
using Fleck;
using System.Collections.Generic;namespace Common
{public class FlectWebSock{public static List<IWebSocketConnection> sockets = new List<IWebSocketConnection>();}
}
在启动时创建 WebSocketServer服务
protected void Application_Start(){AreaRegistration.RegisterAllAreas();WebApiConfig.Register(GlobalConfiguration.Configuration);FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);FleckWebSocket();}public void FleckWebSocket(){/*与网站的端口号不一致,与websocket地址的端口号保持一致*/var socketServer = new WebSocketServer("ws://0.0.0.0:58349");/*发生错误自动重启*/socketServer.RestartAfterListenError = true;socketServer.Start(socket =>{socket.OnOpen = () =>{FlectWebSock.sockets.Add(socket);};socket.OnClose = () =>{FlectWebSock.sockets.Remove(socket);};socket.OnMessage =Message => {FlectWebSock.sockets.ForEach(x => x.Send(Message));};});}
简单的页面
怎么称呼您?<input type="text" value="张三" id="userName" /><br />您要说什么?<input type="text" id="Message" /><input type="button" value="发送" onclick="Send()" /><br /><input type="button" value="连接" onclick="Connect()" /><input type="button" value="关闭" onclick="Close()" /><div id="content"></div>
简单的样式
#content{height:400px;overflow-y:auto;width:500px;}
前端js
<!--兼容低版本IE方案的JS--><script src="~/Script/webSocket_js/swfobject.js"></script><!--兼容低版本IE方案的JS--><script src="~/Script/webSocket_js/web_socket.js"></script><script type="text/javascript">var _WebSocket;/*兼容低版本IE方案的SWF地址*/WEB_SOCKET_SWF_LOCATION = "/Script/webSocket_js/WebSocketMain.swf";/*兼容低版本IE方案,调试信息*/WEB_SOCKET_DEBUG = true;function Connect() {if (_WebSocket != null) {switch (_WebSocket.readyState) {case _WebSocket.CLOSED: Open(); break;default: alert("无法操作!"); break;}} else {Open();}}function Open() {/*websocket地址端口号*/_WebSocket = new WebSocket("ws://localhost:58349");_WebSocket.onopen = function () {alert("连接成功!");}_WebSocket.onmessage = function (socket) {var p = document.createElement("p");p.innerHTML = socket.data;document.getElementById("content").appendChild(p);}_WebSocket.onclose = function () {alert("关闭成功!");}}function Send() {/*发送消息*/_WebSocket.send(DateNow() + " " + document.getElementById("userName").value + ":" + document.getElementById("Message").value);}function Close() {_WebSocket.close();}function DateNow(){var time=new Date();return parseInt(time.getFullYear())+"-"+time.getMonth()+"-"+time.getDate();}</script>
效果图
如果有错误,欢迎指出!相互学习共同进步
[c#]使用Fleck实现简单的WebSocket含兼容低版本IE相关推荐
- Fleck实现简单的Websocket
服务端: using Fleck; using System; using System.Collections.Generic; using System.Linq; using System.Te ...
- 使用SpringBoot搭建一个简单的webSocket服务
前言 个人地址:使用SpringBoot搭建一个简单的webSocket服务 什么是WebSocket? WebSocket是一个HTML5新增的协议,它的目的在浏览器和服务器之间建立一个不受限的双向 ...
- 用 Go 编写一个简单的 WebSocket 推送服务
用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhon- 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息都是通过短信,微 ...
- 如何用 Node.js 实现一个简单的 Websocket 服务?
最近正在研究 Websocket 相关的知识,想着如何能自己实现 Websocket 协议.到网上搜罗了一番资料后用 Node.js 实现该协议,倒也没有想象中那么复杂,除去注释语句和 console ...
- 五子棋游戏Java代码简单实现(含活动图和类图设计)
五子棋游戏Java代码简单实现(含活动图和类图设计) 文章目录 五子棋游戏Java代码简单实现(含活动图和类图设计) 活动图设计 类图设计 代码实现 总结 OOA和OOD设计 代码设计 可改进部分 活 ...
- 浏览器控制台简单测试websocket接口收发
浏览器控制台简单测试websocket接口收发 打开一个网页 F12打开控制台 ws = new WebSocket('ws://121.40.165.18:8800'); 或者 ws = new W ...
- 基于Netty最简单的WebSocket通讯
基于Netty最简单的WebSocket通讯 基于Netty最简单的WebSocket通讯 总览 服务端 EasyWsServer EasyWsServerHandler 客户端 EasyWsClie ...
- 使用libwebsockets搭建一个简单的websocket服务器
本文讲解如何开发一个简单的WebSocket服务器 如果你嫌这两个例子都太简单了,且想了解更多更深的websocket的工作原理, 可以看这篇文章:http://lucumr.pocoo.org/20 ...
- 多种形貌氧化锌ZnO纳米片、纳米棒、纳米线、纳米管的合成简单介绍(含电镜图)
多种形貌氧化锌ZnO纳米片.纳米棒.纳米线.纳米管的合成简单介绍(含电镜图) 西安齐岳生物专业供应各种各种形态.维数的ZnO纳米材料,多种形貌包括纳米氧化锌(ZnO)纳米线.(ZnO)纳米棒.ZnO氧 ...
最新文章
- 使用unix工具监控cpu、内存等系统资源占用率
- ETL 工具下载全集 包括 Informatica Datastage Cognos( 持续更新)
- 汇编指令---CDQ
- /scripts/checkkconfigsymbols.sh
- [转载]出了国才明白的10件事~(MITBBS ZT)
- jdk卸载不干净怎么办_雨刮器“刮不干净”怎么办?老司机:用这招,分分钟解决!...
- 二进制_简单了解二进制
- SharePoint Server 2016 PWA(Project web app) 被变为只读模式
- linux登录后自动打开终端,linux登录信息/打开终端信息
- POJ 1789(最小生成树)
- java反编译工具jd-gui
- 关于Vue页面JS+JQ无法调用页面方法与data
- Adobe产品在Lion上的已知问题
- Linux命令详解词典
- KD树(网易游戏笔试)
- 计算机毕业设计django基于python仓库管理系统(源码+系统+mysql数据库+Lw文档)
- 燕秀工具箱图库lisp_AutoCAD模具设计插件燕秀工具箱 v2.81版(64/32bit)
- 手写字体识别实验-Python课程设计
- 油猴+百度网盘+加速
- 最大值最小值计算机一级,Excel2019中突出数据最大值和最小值的方法详解
热门文章
- ffmpeg设置h264编码IDR间隔
- 如何用python绘制等边三角形_python叠加等边三角形的代码编写方法
- 推荐系统 | 基础推荐模型 | 逻辑回归模型 | LS-PLM | PyTorch实现
- 惠普m154a状态页_惠普M154a说明书
- [BZOJ]1059: [ZJOI2007]矩阵游戏
- macbook air未能与服务器,少量2018款Macbook Air存在问题:苹果已通知维修但并未告知详细情况...
- vuejs v-bind给元素添加属性
- python资产负债表_用Python清理雅虎财务资产负债表
- Flume+kafka+Spark Steaming demo2
- Best practices for a new Go developer