Fleck webSocket

2023-11-01

NuGet 安装 Fleck 

服务端

   private  static IDictionary<string, IWebSocketConnection> dict_socket = new Dictionary<string, IWebSocketConnection>();//把所有连接保存起来
 

 WebSocketServer server = new WebSocketServer("ws://0.0.0.0:30000");//可以自己设置,目前这个是可以获得所有请求

 server.RestartAfterListenError = true;//遇错重启

 server.Start(o => {
                o.OnOpen = () =>
                {
                    string clientUrl = o.ConnectionInfo.ClientIpAddress + ":" + o.ConnectionInfo.ClientPort;
                    dict_socket.Add(clientUrl, o);           
                };
                o.OnClose = () =>
                {
                    string clientUrl = o.ConnectionInfo.ClientIpAddress + ":" + o.ConnectionInfo.ClientPort;
                    if (dict_socket.ContainsKey(clientUrl))
                    {
                        dict_socket.Remove(clientUrl);
                    }
                };
                o.OnMessage = me =>
                {
                    string clientUrl = o.ConnectionInfo.ClientIpAddress + ":" + o.ConnectionInfo.ClientPort;                 
                    SendMSG(o,me);//me是客户端发送的消息,现在是自己给自己发消息
                };
            }); 

       private void SendMSG(IWebSocketConnection connection,string msg) {
            connection.Send(msg);//connection这个是某一个客户端的连接,服务端收到信息需要转发给某一位
        }

客户端

 var webScoket = {};
        function CreateWebSocket() {
            webSocket = new WebSocket("ws://127.0.0.1:30000");
            webSocket.onopen = WebSokectOnOpen;
            webSocket.onmessage = WebSocketOnMessage;
        };
        function WebSokectOnOpen() {
            alert("已经打开连接!");
        };
        function SendMsg() {
            webSocket.send("dsslksldsnsksdjsdsksls");
        }
        function WebSocketOnMessage(event) {
            alert(event.data);//服务端回复的消息

        }
        function WebSocketOnClose() {
            alert('和服务器断开连接');
        };

 <div>
        <input type="button" οnclick="CreateWebSocket()" value="创建连接"/>
        <input type="button" οnclick="SendMsg()" value="发送消息"/>
    </div>

测了,能跑通,没深究,保存,以待后用。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fleck webSocket 的相关文章

  • 树莓派安装opencv教程

    我使用的镜像版本为 Linux version 5 10 103 v7l dom buildbot arm linux gnueabihf gcc 8 Ubuntu Linaro 8 4 0 3ubuntu1 8 4 0 使用Python3
  • C++ 仿函数的分类

    一 概述 仿函数 functor 就是使一个类的使用看上去象一个函数 其实现就是类中实现一个operator 这个类就有了类似函数的行为 就是一个仿函数类了 有些功能的的代码 会在不同的成员函数中用到 想复用这些代码 1 公共的函数 可以
  • 普通人如何抓住AI这个风口

    随着科技的发展 人工智能 AI 已经成为当今社会的风口浪尖 越来越多的行业正在应用AI技术 新的职业和商业机会也随之出现 那么 作为普通人 我们应该如何抓住这个风口呢 来看看 AI硅基小助手 是如何解答的 1 学习AI相关技能 学习AI相关
  • Shiro和Spring Security的简单对比

    Shiro和Spring Security是Java中常用的两种安全认证框架 安全认证主要包括认证和授权鉴权两部分 认证指应用程序验证一个用户信息的过程 应用程序需要确认当前的用户是否是合法的用户 用户会向应用程序提供两部分数据 身份信息和
  • Java学习-冒泡排序

    冒泡排序 通俗的理解就是将一列无序的数字按照从大到小或者从小到大的顺序进行排序的一种简单的算法 在Java中一般是将数组使用冒泡排序的方法进行排序 大致原理是遍历数组元素 然后每两个之间进行比较 将较大值或者较小值按照自己想要的排序结果进行
  • YOLOV7调用本地USB摄像头和自己训练的权重文件实时检测目标

    作者新手 挣扎于毕业的菜鸡一枚 有问题欢迎讨论 最近在做课题时想直接调用本地摄像头来测试一下自己的训练结果 查到的文章多用到onnx openvino等格式转换部署 但作者没有这方面需求 折腾一会失败了 后来发现yolo系列自带了此功能 只
  • Linux xarges

    对于管道 之后的一部分命令可以用stdin进行输入 如 cat a grep test 但有些命令只能用参数形式 就要使用xargs了 xargs可以将stdin转化为参数 类似于find命令中的 exec选项 xargs也可以将单行或多行
  • 电赛经验分享

    2019 TI杯过程和经验分享 在这里我也是第一次写博客 看博客已经有一年多了吧 为什么要在这一次写博客呢 一是因为这一次比赛对我的影响很深 也算试一次经历和教训吧 二是因为最后一次参加TI杯大赛 在 比赛之前我们是做了充分的准备 把前两年
  • 如何用计算机名添加的打印机,如何添加打印机(如何在电脑上安装打印机)

    如何添加打印机 如何在电脑上安装打印机 平时在生活中 我们要将电子档的文件打印出来 都需要使用到打印机 传统的打印机都是以电脑为主 今天就教大家如何在电脑上安装打印机 电脑上安装打印机的详细步骤 1 双击打开桌面上的 控制面板 如果桌面上没
  • cadence布局布线常见问题详解

    cadence布局布线常见问题详解 1 怎样建立自己的元件库 建立了一个新的project后 画原理图的第一步就是先建立自己所需要的库 所采用的工具就是part developer 首先在建立一个存放元件库的目录 如mylib 然后用写字板
  • vue 前端调用摄像头上传压缩图片后端保存调用微信OCR识别身份证

    前端
  • iOS app签名机制

    前言 在移动开发中 iOS系统下的app和andorid系统下的app一个很大的区别是 android系统下 app的安装很方便 可以从多个应用商店下载 小米应用商店 华为应用商店 也可以直接下载apk的包安装 而在iOS系统下 对app的
  • 【CreateFile() Error 5】 权限问题解决

    CreateFile Error 5 权限问题解决 打开注册表 regedit HKEY LOCAL MACHINE Software Microsoft Windows CurrentVersion Policies System 修改这
  • git -C

    https git scm com docs git C
  • 谷歌技术"三宝"之BigTable

    谷歌技术 三宝 之BigTable 2006年的OSDI有 两篇google的论文 分别是BigTable和Chubby Chubby是一个分布式锁服务 基于Paxos算法 BigTable是一个用于管理结构化数据的分布式存储系统 构建在G
  • STM32F103ZET6 之 ADC+TIM+DMA+USART 综合实验

    1 实验目的 1 使用 TIM1 触发 ADC ADC 采集的数据通过DMA 传至内存 然后通过串口打印出采集的数据 2 学会 DMA 传输数据并将数据进行保存 3 验证ADC 的采样率与实际设置的是否相符 2 硬件资源 1 指示灯 2 A
  • Linux实时监控日志文件的swatchdog

    1 前言 本教程主要讲解在Linux系统中如何使用swatchdog实时监控日志文件的变化 swatchdog Simple WATCH DOG 是一个简单的Perl脚本 用于监视类Unix系统 比如Linux 上的活动日志文件 它根据可以
  • 中达优控触摸屏编程视频教程_YKBuilder(中达优控触摸屏编程软件)下载

    YKBuilder也就是中达优控触摸屏编程软件 是中达优控YKHMI系列人机界面的集成开发环境 可以通过对现场数据的采集处理 赶快下载使用吧 YKBuilder以动画显示 报警处理 流程控制和报表输出等多种方式向用户提供解决实际工程问题的方
  • 中国姓氏大全,百家姓

    中国姓氏大全 百家姓 赵 钱 孙 李 周 吴 郑 王 冯 陈 褚 卫 蒋 沈 韩 杨 朱 秦 尤 许 何 吕 施 张 孔 曹 严 华 金 魏 陶 姜 戚 谢 邹 喻 柏 水 窦 章 云 苏 潘 葛 奚 范 彭 郎 鲁 韦 昌 马 苗 凤 花
  • Tor 介绍

    Tor The Onion Router 是第二代洋葱路由 onion routing 的一种实现 用户通过Tor可以在因特网上进行 匿名交流 最初该项目由 美国海军研究实验室 US Naval Research Laboratory 赞助

随机推荐

  • Java 常用功能代码片段(空格分割,lis和数组之间的相互转换)

    1 以空格方式分割字符串 str Hello I come from china String splited str split s 2 字符串数组转换为List 实现方式一 使用Stream中的Collector收集器 String a
  • linux查看支持vt功能,怎样知道 CPU 是否支持虚拟化技术(VT)

    wx fmt png wxfrom 5 wx lazy 1 alt 640 wx fmt png wxfrom 5 wx lazy 1 gt 在安装虚拟化程序 如 VirtualBox 或 VMWare workstation 以在 Lin
  • 国产化操作系统改造oracle proc依赖库文件缺失处理

    国产化操作系统改造oracle proc依赖库文件缺失处理 文章目录 国产化操作系统改造oracle proc依赖库文件缺失处理 1 场景 2 排查过程 2 1 查看安装库文件 2 2 搜索yum源libnsl库版本 3 解决方案 3 1
  • 判断回文字符串

    习题8 8 判断回文字符串 20 分 本题要求编写函数 判断给定的一串字符是否为 回文 所谓 回文 是指顺读和倒读都一样的字符串 如 XYZYX 和 xyzzyx 都是回文 函数接口定义 bool palindrome char s 函数p
  • Pytroch大模型Fine-tune实用小技巧之打印每层参数名及参数冻结

    对于大模型Fine tune 必须冻结大部分低层神经网络的参数 以下命令用于查看模型冻结情况 以便调优 for name parameter in model named parameters 如果只想训练bert的参数的话 name st
  • linux 内核 addr2line,linux内核调试技巧之addr2line

    addr2line工具是一个可以将指令的地址和可执行影像转换为文件名 函数名和源代码行数的工具 这在内核执行过程中出现崩溃时 可用于快速定位出出错的位置 进而找出代码的bug 用法 addr2line a addresses b bfdna
  • ROS机器人 Autolabor Pro1 机器人Windows串口调试方法

    Autolabor Pro1可以使用手柄控制和上位机控制两种方式来控制 在上位机模式下 用户可以选择使用串口调试助手向AP1发送指令 或使用ROS驱动包与AP1通信 本文以Windows串口调试工具为例 介绍Autolabor Pro1 串
  • QT正则表达式

    QT提供的正则类有2个 QRegularExpression 和 QRegExp 两者的用法与API基本一致 但是QRegularExpression 功能更强 1 indexIn函数 原型为 int QRegExp indexIn con
  • 了解消息中间件的基础知识

    为什么要使用消息中间件 解耦 消息中间件可以使不同的应用程序通过解耦的方式进行通信 减少系统间的依赖关系 提供异步通信 消息中间件可以实现异步消息传递 提高系统的响应性能 流量削峰 消息中间件可以起到流量削峰的作用 将短时间内的爆发式流量存
  • phpstudy不能启动mysql解决

    phpstudy不能启动mysql 电启动 日志显示一起动 已停止 是因为自己已经打开了mysql 需要关闭或删除 然后在phpstudy中点启动就可以了 在mysql 的bin 目录下 管理员身份运行 sc delete mysql 即可
  • Python range函数

    目录 描述 语法 返回值 使用示例 1 仅保留stop参数 2 指定起始位置和终止位置 3 指定步长 使用注意 1 所有参数都是整形 不能给出浮点数序列 2 当start参数省略时 step参数也必须省略 3 step小于1没有任何意义 4
  • MFC通过类向导删除控件

    1 打开 rc文件 找到欲删除的控件 选中控件后按右键 选择 类向导 在类向导页面找到控件对应的消息 成员变量 选中后点击 删除处理程序 此时在源文件里变量的定义声明 数据交换函数的相关语句 消息映射中的信息都被注释了 2 在对话框内删除控
  • Excel 解决高次方程求解的方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 说明 利用Excel解高次方程 其原理就是 寻找一个最接近真实值y的实际值 根据这个实际值 然后找一个能让这个方程成立的实际x值 所以通过Excel求出来的高次方程的x值和
  • 单片机蓝桥杯--LED呼吸灯

    在CT107D单片机综合训练平台实现LED的基本控制和其他单片机开发平台不一样 不单单是控制几个LED实现跑马灯这么简单 因为在这个平台上要掌握74CH138译码器和74HC573锁存器的使用才能实现对LED的基本控制 因此 这个单元的重点
  • train_word2vec(CNN情感分析yoom例子五)

    关键函数 sentences vocabulary inv w for w in s for s in sentence matrix embedding model word2vec Word2Vec sentences workers
  • 驱动器能耗制动和制动电阻

    能耗制动 伺服电机在制动过程是机械能转化为电能的过程 电能通过逆变回路回馈到直流母线 会导致直流母线电压升高 当电压上升超过允许阈值后 将会损坏驱动器内部器件 此时伺服电机制动时回馈的能量通过制动电阻消耗掉 能耗制动的优点 制动转矩平滑 而
  • # Spring Boot搭建实际项目开发中的架构

    Spring Boot搭建实际项目开发中的架构 前面的课程中 我主要给大家讲解了 Spring Boot 中常用的一些技术点 这些技术点在实际项目中可能不会全部用得到 因为不同的项目可能使用的技术不同 但是希望大家都能掌握如何使用 并能自己
  • 遥感+python 1.1环境搭建

    遥感 python 1 1环境搭建 目录 遥感 python 1 1环境搭建 1 工作环境 2 用到的包 3 下载区 本章节 笔者主要讲述在python中遥感应用的笔者的使用到的基本工具以及基本环境 为后续讲述其他代码做铺垫 为保证代码的运
  • Create Custom APIs in Dynamics 365 CRM

    Create Custom APIs in Dynamics 365 CRM Power Platform Custom API 系统间集成的新方法 本质上来说和之前的Custom Action区别不大 但从定义到注册整套更规范化 UI配置
  • Fleck webSocket

    NuGet 安装 Fleck 服务端 private static IDictionary