首页 / C# / C# WebSocket通信
C# WebSocket通信
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# WebSocket通信,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2067字,纯文字阅读大概需要3分钟。
内容图文
![C# WebSocket通信](/upload/InfoBanner/zyjiaocheng/623/67137ead280a40d4ae53b83e6757470d.jpg)
HttpListener创建的HTTP服务不能做到实时通信。所以需要WebScket实现与网页的通讯。
首先要在NuGet导入“Fleck”包,需 .NET Framework 4.5及以上。
FleckLog.Level = LogLevel.Debug; var allSockets = new List<IWebSocketConnection>(); var server = new WebSocketServer("ws://127.0.0.1:50000"); 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 = DateTime.Now.ToString(); while (input != "") { Thread.Sleep(1000); foreach (var socket in allSockets.ToList()) { socket.Send(input); } input = DateTime.Now.ToString(); }
2.html网页
<html> <body> Welcome<br/> <input id="text" type="text" /> <button onclick="send()">Send</button> <button onclick="closeWebSocket()">Close</button> <div id="message"></div> </body> <script type="text/JavaScript"> var websocket = null; //判断当前浏览器是否支持WebSocket if('WebSocket' in window){ websocket = new WebSocket("ws://localhost:50000"); } else{ alert('Not support websocket'); } //连接发生错误的回调方法 websocket.onerror = function(){ setMessageInnerHTML("error"); }; //连接成功建立的回调方法 websocket.onopen = function(event){ setMessageInnerHTML("open"); }; //接收到消息的回调方法 websocket.onmessage = function(){ console.log(event,'receive') setMessageInnerHTML(event.data); }; //连接关闭的回调方法 websocket.onclose = function(){ setMessageInnerHTML("close"); }; //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。 window.onbeforeunload = function(){ websocket.close(); }; //将消息显示在网页上 function setMessageInnerHTML(innerHTML){ document.getElementById('message').innerHTML += innerHTML + '<br/>'; } //关闭连接 function closeWebSocket(){ websocket.close(); } //发送消息 function send(){ var message = document.getElementById('text').value; websocket.send(message); } </script> </html>
3.运行程序,打开html网页,网页和服务实现消息的实时通讯,如下图
内容总结
以上是互联网集市为您收集整理的C# WebSocket通信全部内容,希望文章能够帮你解决C# WebSocket通信所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。