LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

H5 WebSocket 如何和C#进行通信

admin
2019年11月12日 16:21 本文热度 3742

  HTML5作为下一代的 Web 标准, 拥有许多引人注目的新特性,如 Canvas、本地存储、多媒体编程接口、WebSocket 等。WebSocket 在浏览器和服务器之间提供了一个基于 TCP 连接的双向通道。Web 开发人员可以非常方便地使用 WebSocket 构建实时 web 应用。HTML5 WebSocket 的目的就是要取代轮询和 Comet 技术,使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力。 WebSocket 在数据传输的稳定性和数据传输量的大小方面,和轮询以及 Comet 技术比较,具有很大的性能优势。

     下面给出一个简单的例子,来说明websocket如何进行前后台交互:

1 html页面

首先判断浏览器是否支持WebSocket,如果具有此特征,则打开特定uri,进行数据交互。

 1 <html>
 2 <head>
 3     <script>
 4     var socket ;
 5     if ("WebSocket" in window) {
 6         //alert("WebSocket is supported by your Browser!");
 7         //open web socket
 8         var ws = new WebSocket("ws://localhost:8181/echo");
 9         socket = ws;
10         ws.onopen = function() {
11             // Web Socket is connected, send data using send()
12             // ws.send("Message from client");
13             //console.log(''Message is sent...'');
14         };
15         ws.onmessage = function(evt) {
16             var received_msg = evt.data;
17             //alert("Message is received...");
18            console.log("Server:"+evt.data);
19         };
20         ws.onclose = function() {
21             // websocket is closed.
22             alert("Connection is closed...");
23         };
24     } else {
25         //不支持WebSocket
26         alert("WebSocket not supported by your Browser!");
27     }
28     function login(){
29          socket.send("{\"uid\":\"admin\",\"pwd\":\"admin\"}");
30     }
31     </script>
32 </head>
33   
34 <body>
35   <button οnclick="login();">login</button>
36 </body>
37 
38 </html>

2 C# websocket server

 1 using System;
 2 using Fleck;
 3 using Newtonsoft.Json;
 4 namespace WebSocketNet
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10 
11             //Fleck
12             var server = new WebSocketServer("ws://0.0.0.0:8181");
13             server.Start(socket =>
14             {
15                 socket.OnOpen = () =>
16                 {
17                     Console.WriteLine("Open!");
18                     socket.Send("hello");
19                 };
20 
21                 socket.OnClose = () => Console.WriteLine("Close!");
22                 socket.OnMessage = message =>
23                 {
24                     Console.WriteLine(message);
25                     //尝试用websocket进行登录
26                     dynamic o = JsonConvert.DeserializeObject<user>(message);
27                     var pwd = o.pwd;
28                     var uid = o.uid;
29                     if (uid == "admin" && uid == "admin")
30                     {
31                         socket.Send("login success");
32                     }
33                     else
34                     {
35                         socket.Send("login fail");
36                     }
37 
38                 };
39 
40             });
41 
42             Console.ReadLine();
43         }
44     }
45    public class user
46     {
47         public string uid { get; set; }
48         public string pwd { get; set; }
49     }
50 }
3 运行

附件:websocket+html聊天演示.rar


该文章在 2019/11/12 16:21:12 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved