c#基于supersocket的简单websocket服务端收发消息实现
using log4net;
using SuperSocket.SocketBase;
using SuperSocket.WebSocket;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace SupersocketServer
{
class Program {
private static readonly ILog infoLogger = LogManager.GetLogger("Logger");
static void Main(string[] args)
{ WebSocketServer ws = new WebSocketServer();
ws.NewMessageReceived += Ws_NewMessageReceived;//当有信息传入时
ws.NewSessionConnected += Ws_NewSessionConnected;//当有用户连入时
ws.SessionClosed += Ws_SessionClosed;//当有用户退出时
ws.NewDataReceived += Ws_NewDataReceived;//当有数据传入时
if (ws.Setup(10086))//绑定端口
ws.Start();//启动服务
infoLogger.Info("服务已启动");
Console.ReadKey();
}
public static List<WebSocketSession> sessionList = new List<WebSocketSession>();
private static void Ws_NewDataReceived(WebSocketSession session, byte[] value)
{
string str = Encoding.UTF8.GetString(value);
infoLogger.InfoFormat("数据传入 id:{0},value:{1}", session.SessionID, str);
} private static void Ws_SessionClosed(WebSocketSession session, CloseReason value)
{
sessionList.Remove(session);
infoLogger.InfoFormat("用户退出:{0},value:{1}", session.SessionID, value);
} private static void Ws_NewSessionConnected(WebSocketSession session)
{
sessionList.Add(session);
infoLogger.InfoFormat("用户连入:" + session.SessionID);
} private static void Ws_NewMessageReceived(WebSocketSession session, string value)
{
infoLogger.InfoFormat("接收消息 id:{0},value:{1}", session.SessionID, value);
if (value=="Hello")
{
//模拟心跳包
sessionList.ForEach(o => { o.Send("你好"); });
}
}
}
}
c#基于supersocket的简单websocket服务端收发消息实现的更多相关文章
- AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答
一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...
- 基于jFinal建立简单的服务端-接收请求并返回指定内容
本菜鸡是一名弱弱的测试工程师,最近完成了一个支付相关的项目,项目工作中,需要建立一个模拟支付宝的网关,主要是接收请求并返回数据.作为一名没有丝毫开发经验的菜鸡,初期入门相当费劲,主要还是思维上的转变. ...
- 基于开源SuperSocket实现客户端和服务端通信项目实战
一.课程介绍 本期带给大家分享的是基于SuperSocket的项目实战,阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何实现打通B/S与C/S网络通讯,如果您对本期的<基于开源Supe ...
- nodejs搭建简单的websocket服务端
创建websocket服务端使用了nodejs-websocket ,首先要安装nodejs-websocket,在项目的目录下: npm install nodejs-websocket 1.搭建w ...
- 基于socket的客户端和服务端聊天简单使用 附Demo
功能使用 服务端 分离一个不停接受客户端请求的线程 接受不客户端请求的线程中,再分离就收消息的线程 几大对象分别是 IPEndPoint IP终结点 服务端Socket,绑定终结点Bind,启动监听L ...
- 用nodejs快速实现websocket服务端(带SSL证书生成)
有不少公司将nodejs的socket.io作为websocket的解决方案,很遗憾的是socket.io是对websocket的封装,并不支持html5原始的websocket协议,微信小程序使用的 ...
- asp.net网站作为websocket服务端的应用该如何写
最近被websocket的一个问题困扰了很久,有一个需求是在web网站中搭建websocket服务.客户端通过网页与服务器建立连接,然后服务器根据ip给客户端网页发送信息. 其实,这个需求并不难,只是 ...
- Netty 搭建 WebSocket 服务端
一.编码器.解码器 ... ... @Autowired private HttpRequestHandler httpRequestHandler; @Autowired private TextW ...
- Pomelo:网易开源基于 Node.js 的游戏服务端框架
Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese
随机推荐
- IPFS挖矿赚钱吗?IPFS挖矿是真的吗?
IPFS一出现就获得了极高的关注度,「让人类信息永存」的口号也让其蒙上了一层神秘的面纱.今天我就来给大家自剖析,一探IPFS技术的真相. IPFS是一个去中心化存储网络,而Filecoin是IPFS激 ...
- x64 下记事本WriteFile() API钩取
<逆向工程核心原理>第30章 记事本WriteFile() API钩取 原文是在x86下,而在x64下函数调用方式为fastcall,前4个参数保存在寄存器中.在原代码基础上进行修改: 1 ...
- Caused by: java.lang.RuntimeException: JxBrowser license check failed: No valid license found
使用jxbrower报错,原因时证书检验失败, 解决方案: 1.首先创建证书,下面是我在IDEA maven项目中创建的位置,Java项目中在src/目录下创建, META-INF/teamdev.l ...
- Apache Hudi:CDC的黄金搭档
1. 介绍 Apache Hudi是一个开源的数据湖框架,旨在简化增量数据处理和数据管道开发.借助Hudi可以在Amazon S3.Aliyun OSS数据湖中进行记录级别管理插入/更新/删除.AWS ...
- Nginx日志分析 awk 命令
通过Nginx日志,可以简单分析WEB网站的运行状态.数据报表.IP.UV(unique visitor指独立访客访问数,一台电脑终端为一个访客.).PV(page view即页面访问量,每打开一次页 ...
- 高精度减法(c++)
高精度减法 每当要进行精度较高的运算时,就要用到高精度. 下图是各个类型的数值范围: 如果想不起各个类型占多少字节,可以采用下面的方法: printf("%d %d",sizeof ...
- 什么是 Ansible - 使用 Ansible 进行配置管理
[注]本文译自:https://www.edureka.co/blog/what-is-ansible/ Ansible 是一个开源的 IT 配置管理.部署和编排工具.它旨在为各种自动化挑战提供巨 ...
- B1029/A1048 旧键盘损坏了,在输入一段文字时坏了的键不可以正常使用,现给出应输入的一段文字,和实际输出的文字,找出坏掉的键。
#include<cstdio> #include<cstring> const int maxn = 1000; bool HashTable[maxn] = { false ...
- dubbo负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
(1)dubbo负载均衡策略 1)random loadbalance 默认情况下,dubbo是random load balance随机调用实现负载均衡,可以对provider不同实例设置不同的权重 ...
- SpringCloud-微服务架构编码构建
SpringCloud Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线).分布式系统的协调导致了样板模式, ...