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-07-30 21:33:33

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

netty与websocket通信demo

netty v3.9.4 websocket建立前,客户端需要与服务器进行握手 确认websocket连接,也就是说在处理websocket请求前,必需要处理一些http请求. websocket到现在为止,已经有多个版本,netty有相应的对应类,这部分处理一般不需要人工干预. 如果运行正常的话,会在页面的文本框中显示1-20记数. 可以通过firefox或chrome的开发人员工具,显看浏览器与服务器的交互. 主要是HttpServerChannelHandler2,加了些注释和少量debu

websocket通信1009错误,

问题说明: springboot继承 WebSocketConfigurer实现websocket通信服务,服务器端报错,"The decoded text message was too big for the output buffer and the endpoint does not support partial messages",浏览器端显示服务器上的该次会话已经关闭.1009错误,内容长度超限. 问题解决 在应用启动类中通过注解注入方式设置通信的文本和二进制消息的大小.

手机端与网页通过websocket通信

手机端与网页通讯,使用websocket完成二者之间的联通. websocket选用socket.io类实现. 服务器端,使用nodejs,代码依赖了express和socket.io. 首先建立一个http服务器 var app = require('express')(); var server = require('http').Server(app); var socketio = require('./v1/socketio'); var db = require("./db/db.j

websocket通信

使用websocket连接服务器的终端,首先通过浏览器客户端的连接发送数据到服务器,客服端的连接http需要转换成WebSocket的网络协议,这里需要我们创建一个新的websocket实例.而且websocket是双向的通信,不像ajax这样的轮询数据,需要时总是延迟的传输.   var websocket = new WebSocket("ws://www.baidu.com");    websocket.onopen = function(){ // 表示连接服务器端的通信  

websocket通信之握手,封包,解包

介绍 WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与服务器全双工(full-duplex)通信.其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信. 上古时期的浏览器有些是不支持WebSocket的,下面来介绍如何在浏览器中创建一个websocket对象 var socket = new WebSocket("ws://127.0.0.1:8002/xxoo&quo

python实现建立websocket通信

实现代码如下: #websocket协议通信 import threading import time import websocket def when_message(ws, message): print('/n接收到的消息:' + message) # 当建立连接后,死循环不断输入消息发送给服务器 # 这里需要另起一个线程 def when_open(ws): print('连接成功') def run(): while True: a = input('请输入:') ws.send(a

SuperWebSocket与Cocos2dx通信时执行不了命令的问题

要修改WebSocketSession.cs 中的方法 string IWebSocketSession.GetAvailableSubProtocol(string protocol) { if (string.IsNullOrEmpty(protocol))  //这个在SuperWebSocket默认是空, 而Cocos2dx上传上来的默认是default-protocol { SubProtocol = AppServer.DefaultSubProtocol;             

nodejs建立websocket通信

依赖模块 nodejs-websocket 服务端 const ws = require('nodejs-websocket'); console.log('开始建立连接...'); const server = ws.createServer(function(conn) { conn.on('text', function(str) { console.log('收到的信息为:' + str); conn.send(str); }); conn.on('close', function(co

js --- ffmpeg rtsp 推流,websocket通信,cnavas 渲染

首先选择正确的ffmpeg包 百度搜索ffmpeg官网,点击进入下图所示. 点击download,进入下载页面,选择window,window下面只有一个builds版本,如图红线部分圈出来的 点击build,进入版本选择页面,对于我们普通使用者,我们选择static版本就好,当然如果你要进行更高级别的开发,你可以选择Source code.现在我们要选择的版本是version4.2.1,architecture windows64-bit,linking static. 点击Download