WebSocketSharp中WebSocket类
websocket-sharp.clone,
Version=1.0.2.39869
WebSocket由方法调用事件改为实例化委托调用,两种构造
1.构造函数
第一种
//
// 摘要:
// Initializes a new instance of the WebSocketSharp.WebSocket class with the specified
// WebSocket URL and subprotocols.
//
// 参数:
// url:
// A System.String that represents the WebSocket URL to connect.
//
// cancellationToken:
// The System.Threading.CancellationToken used to cancel websocket operations.
//
// fragmentSize:
// Set the size of message packages. Smaller size equals less memory overhead when
// sending streams.
//
// onOpen:
// Delegate to be invoked when the WebSocket connection has been established.
//
// onClose:
// Delegate to be invoked when the WebSocket connection has been closed.
//
// onError:
// Delegate to be invoked when the WebSocketSharp.WebSocket gets an error.
//
// protocols:
// An array of System.String that contains the WebSocket subprotocols if any. Each
// value of protocols must be a token defined in http://tools.ietf.org/html/rfc2616#section-2.2.
//
// onMessage:
// Delegate to be invoked when the WebSocketSharp.WebSocket receives a message.
//
// 异常:
// T:System.ArgumentException:
// url is invalid.
// -or-
// protocols is invalid.
//
// T:System.ArgumentNullException:
// url is null.
public WebSocket(string url, CancellationToken cancellationToken = default(CancellationToken), int fragmentSize = , Func<Task> onOpen = null, Func<CloseEventArgs, Task> onClose = null, Func<MessageEventArgs, Task> onMessage = null, Func<ErrorEventArgs, Task> onError = null, params string[] protocols);
参数说明:
url:要连接websocket url连接字符串
cancellationToken:用于取消websocket操作,线程
fragmentSize:消息包大小
onOpen:建立连接时调用的委托
onClose:连接关闭时调用的位图
onError:委托在WebSocketSharp时调用。WebSocket得到一个错误。
protocols:协议,每一个协议的值必须是在http://tools.ietf.org/html/rfc2616#section-2.2中定义的令牌
onMessage:WebSocket接收到一条消息
异常:
System.ArgumentException:URL无效或协议无效
System.ArgumentNullException:URL为空
第二种
//
// 摘要:
// Initializes a new instance of the WebSocketSharp.WebSocket class with the specified
// WebSocket URL and subprotocols.
//
// 参数:
// url:
// A System.String that represents the WebSocket URL to connect.
//
// sslAuthConfiguration:
// A ClientSslAuthConfiguration for securing the connection.
//
// cancellationToken:
// The System.Threading.CancellationToken used to cancel websocket operations.
//
// fragmentSize:
//
// onOpen:
// Delegate to be invoked when the WebSocket connection has been established.
//
// onClose:
// Delegate to be invoked when the WebSocket connection has been closed.
//
// onError:
// Delegate to be invoked when the WebSocketSharp.WebSocket gets an error.
//
// protocols:
// An array of System.String that contains the WebSocket subprotocols if any. Each
// value of protocols must be a token defined in http://tools.ietf.org/html/rfc2616#section-2.2.
//
// 异常:
// T:System.ArgumentException:
// url is invalid.
// -or-
// protocols is invalid.
//
// T:System.ArgumentNullException:
// url is null.
public WebSocket(string url, ClientSslConfiguration sslAuthConfiguration, CancellationToken cancellationToken = default(CancellationToken), int fragmentSize = , Func<Task> onOpen = null, Func<CloseEventArgs, Task> onClose = null, Func<MessageEventArgs, Task> onMessage = null, Func<ErrorEventArgs, Task> onError = null, params string[] protocols);
和第一种唯一区别多了一个身份验证sslAuthConfiguration
2.属性
Cookies:获取websocket中http cookie
Extensions:获取websocket扩展
IsSecure:获取是否安全连接
Origin:获取或设置http标头
Protocol:获取子协议
ReadyState:获取联系状态,分别是Connecting、Open、Closing和Closed四个状态
WaitTime:获取设置ping和关闭响应时间,毫秒
3.方法
Close()、Close(CloseStatusCode code)、Close(CloseStatusCode code, string reason);:分为直接关闭、状态码关闭、状态码+关闭原因三种方式
bool Connect():建立连接
Dispose():关闭连接,条件是状态码是Away
Uri GetUrl():获取URL
bool IsAlive():是否活动状态
bool Ping()、bool Ping(string message):发送ping、发送指定ping消息
boo Send():发送数据分为二进制、数据流、字符串以及数据流+长度四种参数
SetCookie(Cookie cookie):设置cookie
SetCredentials(string username, string password, bool preAuth):设置HTTP身份验证用户名、密码和认证
SetProxy(string url, string username, string password):设置HTTP代理
WebSocketSharp中WebSocket类的更多相关文章
- 如何在WebSocket类中访问Session
我最近正在做一个基于websocket的webQQ,最后代码会开源带github上,所以过程中我就不贴所有的代码啦~就贴问题的关键. 我在WebSocket里发消息的时候需要用到session,因为在 ...
- java中websocket的应用
在上一篇文章中,笔者简要介绍了websocket的应用场景及优点,戳这里 这篇文章主要来介绍一下在java项目中,特别是java web项目中websocket的应用. 场景:我做了一个商城系统,跟大 ...
- Spring Boot WebFlux-08——WebFlux 中 WebSocket 实现通信
第08课:WebFlux 中 WebSocket 实现通信 前言 WebFlux 该模块中包含了对反应式 HTTP.服务器推送事件和 WebSocket 的客户端和服务器端的支持.这里我们简单实践下 ...
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- 基础知识(05) -- Java中的类
Java中的类 1.类的概念 2.类中的封装 3.对象的三大特征 4.对象状态 5.类与类之间的关系 ------------------------------------------------- ...
- Objective-C中的类目,延展,协议
Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词 ...
- CSS中伪类及伪元素用法详解
CSS中伪类及伪元素用法详解 伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...
- Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法
Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...
- C#中timer类的用法
C#中timer类的用法 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类 ...
随机推荐
- jquery sortable的拖动方法示例详解
转自:https://hb-keepmoving.iteye.com/blog/1154618 所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象 u ...
- Chrome安装crx文件的插件时出现“程序包无效”
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/11043453.html 链接:https: ...
- Javascript的异步与单线程
一.前言 我们都知道,javasript是一个单线程的语言:所谓单线程就是同一时间不能做两件事情,两段代码不能同时执行:因为这种机制,才避免了两段js同时对一个DOM节点进行渲染的冲突.但是也会因此产 ...
- C++——同名隐藏 和 赋值兼容规则
同名隐藏 一旦子类定义了与父类同名的方法,则父类里面该名字的所有方法都被隐藏了.必须显示指定是父类的方法才可以 #include<iostream> using namespace std ...
- 爬虫:selenium请求库
一.介绍 二.安装 三.基本使用 四.选择器 五.等待元素被加载 六.元素交互操作 七.其他 八.项目练习 一.介绍 # selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requ ...
- Socket的一些疑惑整理
关于listen的问题请看steven<tcp/ip详解1>18章18.11.4 呼入连接请求队列一节,说的很清楚
- JAVA HASH学习
就HASH的目的来说,是为了解决内容摘要与快速索引的问题:而其算法也比较多样. JDK实现中,对String类的hashcode()进行了重载: public int hashCode() { int ...
- 切换Python环境 linux终端命令行
切换Python环境 conda info -e // 查看有什么环境 source activate env //切换环境 linux终端分屏 terminator https://www.jia ...
- 通过 cross apply 实现函数转换成表并与原表进行关联
create table tb_cross_apply ( id int identity, multivalue ) ) insert into tb_cross_apply VALUES ('A| ...
- C# String 字符拼接测试(“+”、string.Format、StringBuilder 比较)
对于字符串的拼接自己一直有疑问,在何时该用什么方法来拼接?哪种方法更好.更适合. 几种方法 1.“+” 拼接字符串 现在在 C# 中,字符串进行拼接,可以直接用 “+” 而且可以直接用于数字类型的而不 ...