效果图

(前沿).WebSocket是一种基于TCP/IP通讯一种新的通讯协议,它实现了服务器和客户端双工通讯,允许服务器主动发送给客户端.

(浏览器对Socket的支持) .

  • 浏览器 支持情况 Chrome谷歌浏览器 Chrome version 4+支持
  • Firefox火狐浏览器 Firefox version 5+支持
  • IE微软浏览器 IE version 10+支持(我们一般win7自带的是IE11)
  • Safari苹果浏览器 IOS 5+支持
  • Android Brower安卓浏览器 Android 4.5+支持

服务器对Socket的支持

  • 厂商 应用服务器 备注 IBM WebSphere WebSphere 8.0以上版本支持,
  • 7.X之前版本结合MQTT支持类似的HTTP长连接 甲骨文 WebLogic WebLogic 12c 支持,
  • 11g以及10g版本通过HTTP Publish支持类似的HTTP长连接 微软 IIS IIS 7.0+支持
  • Apache Tomcat Tomcat 7.0.5+支持   Jetty Jetty 7.0+支持

cs

using Fleck;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace socketDemo
{class Program{static void Main(string[] args){//客户端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 = () =>   //连接建立事件
                {//获取客户端网页的urlstring 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);};});Console.ReadKey();foreach (var item in dic_Sockets.Values){if (item.IsAvailable == true){item.Send("服务器消息:" + DateTime.Now.ToString());}}Console.ReadKey();//关闭与客户端的所有的连接foreach (var item in dic_Sockets.Values){if (item != null){item.Close();}}Console.ReadKey();}}
}

html:

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><title>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: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 onload="CreateWebSocket()"><div class="div1"><input type="text" id="Text1" /><input type="button" onclick="WebSocketSendMsg()" value="发送数据" /></div>
</body>
</html>

Fleck For Web Socket相关推荐

  1. web socket 心跳包的实现方案

    web socket 心跳包的实现方案05/30/2010 现在网络环境错综复杂,socket心跳包是获得健康强壮的连接的有效解决方案,今天,我们就在web socket中实现心跳包方案,是的,尽管我 ...

  2. Web Socket/Stomp——整合Spring Session【Header Token模式】解决方案

    官方文档 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#websocket-stomp-au ...

  3. HTML 5 Web Socket:下一次Web通信革命揭幕,互联网营销

    最近关于HTML 5 Web Socket的流言已经满天飞,它通过Web上的一个单一Socket定义了一个全双工通信信道,HTML 5 Web Socket并不是普通HTTP通信的增强版,它代表着一个 ...

  4. 使用 ABAP 开发的一个基于 Web Socket 的小工具,能提高程序员日常工作效率

    程序员区别于其他岗位的一个优势是,我们可以充分利用自己掌握的编程语言,将平日一些琐碎的,重复的日常工作,通过代码来实现自动化,从而省下更多的时间来投入到技术含量更高的工作中,提高工作效率. 本文介绍一 ...

  5. TCP和Web Socket混合使用的一个例子

    用户在输入框里输入字符串: web socket从浏览器收到用户输入,转发给Orchestra 第三步orchestra收到Web Socket server发过来的数据,准备广播给state mac ...

  6. TCP socket和web socket的区别

    小编先习惯性的看了下某中文百科网站对Web Socket的介绍,觉得很囧.如果大家按照这个答案去参加BAT等互联网公司的前端开发面试,估计会被鄙视. 还是让我们阅读一些英文材料吧. 让我们直接看sta ...

  7. 如何使用Chrome开发者工具调试web socket应用

    使用Chrome开发者工具,web socket应用的调试显得异常方便. 打开Chrome开发者工具,切换到network标签页,选择Filter,根据WS过滤, 刷新我们的web socket应用, ...

  8. 轮询、长轮询与Web Socket的前端实现

    Web Socket 应用场景:实现即时通讯:如股票交易行情分析.聊天室.在线游戏等,替代轮询和长轮询 轮询 轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由 ...

  9. Jmeter对Web Socket进行压力测试 —— 200人直播课实战经验

    转载 Jmeter对Web Socket进行压力测试 -- 200人直播课实战经验 分类专栏: Jmeter 测试经验 Web Socket 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-S ...

最新文章

  1. 如何处理Entity Framework中的DbUpdateConcurrencyException异常
  2. Java OkHttp3的简单使用
  3. Hadoop,Yarn,Zookeeper,kafka数据仓库集群命令集合
  4. createmutex创建的锁需要手动关闭句柄吗_你知道吗?汽车的儿童锁居然还能发挥这么大的作用!...
  5. 动态规划训练17 [Super Jumping! Jumping! Jumping! HDU - 1087 ]
  6. (计算机组成原理)第三章存储系统:本章习题
  7. ThinkPHP5 助手函数
  8. 哇撒!这几个SpringBoot前后端分离项目(附源码),star过千,快去收藏夹吃灰吧。。。
  9. Windows:定时/进程结束执行命令
  10. CodeForces - 786B Legacy (线段树+DIjkstra+思维)
  11. linux查看串口驱动
  12. 开发跨境电商/外贸商城网站需要考虑的事项
  13. 大学物理-热学-教学总结
  14. 【业务安全02】业务数据安全
  15. android停止蓝牙音乐服务,蓝牙音乐播放状态一直为暂停态
  16. 去APP Store评分撰写评论方案
  17. stm32专题二十五:基本定时器原理
  18. 【Codeforces 549F】Yura and Developers | 单调栈、启发式合并、二分
  19. 编译安装php时遇到virtual memory exhausted: Cannot allocat
  20. 【Vue】Vue中mixins的使用方法及实际项目应用详解

热门文章

  1. K-divisible Sum
  2. 【前端三剑客二】CSS手术刀剖析第二篇
  3. 申请SSL证书需要多长时间
  4. 17 | 五险一金到底有什么用?被忽视的个人利益
  5. 如何用命令行运行可执行程序.exe
  6. 前后端分离详解(转发)
  7. 基二FFT时间抽取和频域抽取算法
  8. 星际争霸十大挖掘性操作
  9. oracle资产负债表重分类吗,​资产负债表一般是重分类还是不重分类
  10. 旁听硕士答辩——爱立信,WireShark,GGSN