C#(SuperWebSocket)与websocket通信

原文:C#(SuperWebSocket)与websocket通信

客户端代码

点击可以查看一些关于websocket的介绍

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8 <input type="button" id="send" onclick="send()" value="发送">
 9 <input type="text"  id="message">
10 <script type="text/javascript">
11     var  wsClient=new WebSocket( 'ws://localhost:40001');
12     wsClient.open=function(e){
13         console.log("Connected!");
14     }
15     wsClient.onclose=function(e){
16         console.log("Disconnected!");
17     }
18     wsClient.onmessage=function(e){
19         console.log("接收消息:"+e.data);
20     }
21     wsClient.onerror=function(e){
22         console.log(e.data);
23     }
24     function send(){
25         var  oText=document.getElementById("message");
26         wsClient.send(oText.value);
27     }
28 </script>
29 </body>
30 </html>

服务器端代码

  SuperWebSocket  继承了Socket框架SuperSocket,是一个WebSocket服务器的网络实现。

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             WebSocketServer server = new WebSocketServer();
 6             server.NewSessionConnected += server_NewSessionConnected;
 7
 8             server.NewMessageReceived += server_NewMessageReceived;
 9             server.SessionClosed += server_SessionClosed;
10             try
11             {
12                 server.Setup("127.0.0.1", 40001);//设置端口
13                 server.Start();//开启监听
14             }
15             catch (Exception ex)
16             {
17                 Console.WriteLine(ex.Message);
18             }
19             Console.ReadKey();
20         }
21
22         static void server_SessionClosed(WebSocketSession session, SuperSocket.SocketBase.CloseReason value)
23         {
24             Console.WriteLine(session.Origin);
25         }
26
27         static void server_NewMessageReceived(WebSocketSession session, string value)
28         {
29             Console.WriteLine(value);
30             session.Send(value);
31         }
32
33         static void server_NewSessionConnected(WebSocketSession session)
34         {
35             Console.WriteLine(session.Origin);
36         }
37     }

刚开始自己也试着写了个websocket的服务器,但是觉得麻烦,后来还是直接用SuperWebSocket了,因为它真的简单实用高大上。直接在NuGet包中就可以直接安装,

顺带把常用的log4net和njson都装了,一步到位啊。

 

时间: 2024-10-26 18:34:01

C#(SuperWebSocket)与websocket通信的相关文章

javascript-js客户端与c#的后台服务进行websocket通信。后台服务对于多帧接收的粘包等问题。

问题描述 js客户端与c#的后台服务进行websocket通信.后台服务对于多帧接收的粘包等问题. 客户端网页是纯的javascript写的,后台服务是c#语言写的. 于是,用websocket通信的时候问题就来了,后台服务在接收客户端网页的多帧数据的时候,出现了粘包问题. 具体来说就是: 1.后台服务使用异步的 client.BeginReceive(RecvData, 0, RecvData.Length, SocketFlags.None,new AsyncCallback(AcceptC

如何在安卓端实现websocket通信

问题描述 如何在安卓端实现websocket通信 想做一个基于Websocket的一个安卓应用,有没有人做过的,求demo 解决方案 即时通讯? 可以参考:http://tt.mogu.io/ 解决方案二: web即时通信1--WebSocket与WebRTC的三种实现方式对比

Python通过websocket与js客户端通信示例分析_python

具体的 websocket 介绍可见 http://zh.wikipedia.org/wiki/WebSocket  这里,介绍如何使用 Python 与前端 js 进行通信. websocket 使用 HTTP 协议完成握手之后,不通过 HTTP 直接进行 websocket 通信. 于是,使用 websocket 大致两个步骤:使用 HTTP 握手,通信. js 处理 websocket 要使用 ws 模块: Python 处理则使用 socket 模块建立 TCP 连接即可,比一般的 so

.NET的WebSocket开发包比较

本文出现在第三方产品评论部分中.在这一部分的文章只提供给会员,不允许工具供应商用来以任何方式和形式来促销或宣传产品.请会员报告任何垃圾信息或广告. Web项目常常需要将数据尽可能快地推送给客户,必要时无需等待客户端请求.对于与用户之间进行实时通信的网站,例如在线交流或文档协作工具,或者在长期运行的计算/执行任务的服务器上更新系统状态,等等这些时候,采用双向沟通机制是理想的. 以前,这类问题一般使用下面的解决方案: 使用 Flash 中的 Socket 连接(http://help.adobe.c

带你认识HTML5中的WebSocket

 认识 HTML5 的 WebSocket 在 HTML5 规范中,我最喜欢的Web技术就是正迅速变得流行的 WebSocket API.WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术.这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器.让我们看一看 HTML5 的 WebSocket API:它可用于客户端.服务器端.而且有一个优秀的第三方API,名为Socket.IO. 一.HTML5 中的 WebSocket API 是个什么东

通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输(上)

原文 http://www.cnblogs.com/beyondblog/archive/2013/04/11/3015756.html HTML5 拥有许多引人注目的新特性,如 Canvas.本地存储.多媒体编程接口.WebSocket 等等.虽然现在大家把它捧的很火的样子,但是个人认为它还需要其他平台的支持才能真正的"火起来". 原来做web通信的时候 基于ajax的"轮询" "长轮询"等其他的方式 网上有很详细的解释 轮询: 这是最早的一种

java ee-学习JavaEE中,使用WebSocket的问题

问题描述 学习JavaEE中,使用WebSocket的问题 最近刚刚学习了JSP/Servlet的知识,书上有讲WebSocket的技术,自己想实现一下,但总是有问题,如下图: 源代码如下: /*页面脚本*/ <!DOCTYPE html><html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8&quo

《Web应用漏洞侦测与防御:揭秘鲜为人知的攻击手段和防御技术》——1.3 Websocket

1.3 Websocket 构建处理快速变化的内容(比如状态更新和聊天消息)的Web应用程序要面临一个障碍即:HTTP的请求/响应模型.对这种类型的网站可以进行不断优化,但最终会达到某个极限,因为浏览器必须不断轮询服务器以便进行更新.换句话说,浏览器会不断发起请求,无论是GET.POST还是其他方法.WebSocket通过提供双向的通信通道来解决这个HTTP设计限制问题,这也称作全双工通信通道.WebSockets URL连接使用ws://或wss://方案,后者用于SSL/TLS连接. 一旦浏

WebSocket通信协议应用安全问题分析

WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术.WebSocket通信协议于2011年被IETF定为标准RFC 6455,WebSocket API也被W3C定为标准,主流的浏览器都已经支持WebSocket通信. WebSocket协议是基于TCP协议上的独立的通信协议,在建立WebSocket通信连接前,需要使用HTTP协议进行握手,从HTTP连接升级为WebSocket连接.浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双