websocket-shap 函数Broadcast的使用方法
Broadcast:在websocket-shap函数的定义是:向WebSocket服务中的每个客户端发送数据,类似于广播的效果
如果要使用异步发送,可使用BroadcastAsync函数。
在源码中的代码片段如下:
//向WebSocket服务中的每个客户端发送string数据public void Broadcast (string data){if (_state != ServerState.Start) {var msg = "管理器的当前状态为“未启动”|The current state of the manager is not Start.";throw new InvalidOperationException (msg);}if (data == null)throw new ArgumentNullException ("data");byte[] bytes;if (!data.TryGetUTF8EncodedBytes (out bytes)) {var msg = "无法进行utf-8编码|It could not be UTF-8-encoded.";throw new ArgumentException (msg, "data");}if (bytes.LongLength <= WebSocket.FragmentLength)broadcast (Opcode.Text, bytes, null);elsebroadcast (Opcode.Text, new MemoryStream (bytes), null);}
//向WebSocket服务中的每个客户端发送stream数据 public void Broadcast (Stream stream, int length){if (_state != ServerState.Start) {var msg = "The current state of the manager is not Start.";throw new InvalidOperationException (msg);}if (stream == null)throw new ArgumentNullException ("stream");if (!stream.CanRead) {var msg = "It cannot be read.";throw new ArgumentException (msg, "stream");}if (length < 1) {var msg = "Less than 1.";throw new ArgumentException (msg, "length");}var bytes = stream.ReadBytes (length);var len = bytes.Length;if (len == 0) {var msg = "No data could be read from it.";throw new ArgumentException (msg, "stream");}if (len < length) {_log.Warn (String.Format ("Only {0} byte(s) of data could be read from the stream.",len));}if (len <= WebSocket.FragmentLength)broadcast (Opcode.Binary, bytes, null);elsebroadcast (Opcode.Binary, new MemoryStream (bytes), null);}
//c# 调用方式:private void Broadcast(string msg, string type = "1"){var data = new JsonDto() { content = msg, type = type, name = "" };//发送广播数据,每个在线的客户端都可以收到信息 Sessions.Broadcast(Newtonsoft.Json.JsonConvert.SerializeObject(data));}
转载于:https://www.cnblogs.com/innershare/p/10839492.html
websocket-shap 函数Broadcast的使用方法相关推荐
- 学习使用js链接websocket服务断线重连的方法
学习使用js链接websocket服务断线重连的方法 前言 思路 示例代码 前言 我们在是有websocekt的时候,有的时候由于某些原先websocket会断开连接,我们需要重现连接,该如何实现呢? ...
- php函数的默认值,php函数指定默认值方法的小例子
php函数指定默认值方法的小例子 本节内容: php函数指定默认值 在php编程中,为自定义函数设定默认值,当用户调用该函数时,如果不给参数指定值,参数会用默认值顶替. 例1, 复制代码 代码如下: ...
- R语言使用car包的outlierTest函数通过假设检验的方法检测回归模型中的异常值(outlier)、输出异常值对应的统计量、p值以及Bonferonnii校正p值
R语言使用car包的outlierTest函数通过假设检验的方法检测回归模型中的异常值(outlier).输出异常值对应的统计量.p值以及Bonferonnii校正p值 目录
- Button中command后面函数添加参数解决方法
Button中command后面函数添加参数解决方法 参考文章: (1)Button中command后面函数添加参数解决方法 (2)https://www.cnblogs.com/smart-ziha ...
- 1.2、什么是函数?什么是方法
1.2.什么是函数?什么是方法 在javascript中,函数和方法的区分 有助于理解js执行上下文关系,基于原型的继承方式. 什么是函数 通过function或字面量定义的function类型的变量 ...
- 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )
文章目录 一.函数形参使用推荐方法 二.完整代码示例 一.函数形参使用推荐方法 在函数中 , 形参 中的 指针变量 , 不建议直接使用 ; 推荐 在 函数中 , 定义 局部 指针变量 , 接收 形参中 ...
- STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)
STM32延时函数的三种方法:普通延时.SysTick 定时器延时(1.中断方式:2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ ...
- [转]SAP ABAP中使用Read_Text函数读取项目文本的方法
SAP ABAP中使用Read_Text函数读取项目文本的方法 使用Read_Text函数来读取文本内容.需要找到相关参数. 下面以采购订单为例: 双击文本,进入文本编辑器. 转到->表头. 显 ...
- python方法和函数的格式是完全一样的_【python基础语法】常用内置函数、关键字、方法和之间的区别(小结)...
'''关键字: False:bool数据类型 True:bool数据类型 None:表示数据的内容为空 and:逻辑运算符:与 or:逻辑运算符:或 not:逻辑运算符:非 in:身份运算符,判断变量 ...
- java如何构造ajax回调参数,jQuery实现ajax回调函数带入参数的方法示例
本文实例讲述了jQuery实现ajax回调函数带入参数的方法.分享给大家供大家参考,具体如下: 不带参数的写法: function pass(htmlId,auditingFlag){ var url ...
最新文章
- 如何解决现有的问题——VBA课程第五次讨论2007年12月13日
- matlab画二维网格贴吧,Matlab二维网格划分—预告
- 总结 - 沉寂了大半年后的又一次
- 迷你MVVM框架 avalonjs 学习教程14、事件绑定
- clion 查看内容窗口_CLion精华笔记
- 启明去端分享| ESP32-S3如何实现tcp_client和tcp_server9-07
- 魔兽世界---屠夫(Just a Hook)
- 如何解决JAVA环境变量配好后,重启电脑又失效的问题
- php while for 性能,php的foreach,while,for的性能比较
- 【最短路】【图论】【Floyed】牛的旅行(ssl 1119/luogu 1522)
- swot分析法案例_(附数据集)SWOT分析实战案例!
- linux桌面xfce美化_使用Xfce Linux桌面环境的8个理由
- yum安装nginx,并配置静态资源服务器
- LeetCode 669. 修剪二叉搜索树(Trim a Binary Search Tree)
- 十亿级同步,百亿级调用,千亿级访问量的开放技术平台如何炼成?
- Globle Get 多线程下载系统
- TCP粘包/拆包--利用LineBasedFrameDecoder解决TCP粘包问题
- HTTP协议,到底是什么鬼?
- 乌尔都语简介和Unicode由来
- 巧妙利用工厂方法+反射+配置类解决多个同一方法不同实现