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类的更多相关文章

  1. 如何在WebSocket类中访问Session

    我最近正在做一个基于websocket的webQQ,最后代码会开源带github上,所以过程中我就不贴所有的代码啦~就贴问题的关键. 我在WebSocket里发消息的时候需要用到session,因为在 ...

  2. java中websocket的应用

    在上一篇文章中,笔者简要介绍了websocket的应用场景及优点,戳这里 这篇文章主要来介绍一下在java项目中,特别是java web项目中websocket的应用. 场景:我做了一个商城系统,跟大 ...

  3. Spring Boot WebFlux-08——WebFlux 中 WebSocket 实现通信

    第08课:WebFlux 中 WebSocket 实现通信 前言 WebFlux 该模块中包含了对反应式 HTTP.服务器推送事件和 WebSocket 的客户端和服务器端的支持.这里我们简单实践下 ...

  4. Python中的类、对象、继承

    类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

  5. 基础知识(05) -- Java中的类

    Java中的类 1.类的概念 2.类中的封装 3.对象的三大特征 4.对象状态 5.类与类之间的关系 ------------------------------------------------- ...

  6. Objective-C中的类目,延展,协议

    Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词 ...

  7. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  8. Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

    Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...

  9. C#中timer类的用法

    C#中timer类的用法 关于C#中timer类  在C#里关于定时器类就有3个   1.定义在System.Windows.Forms里   2.定义在System.Threading.Timer类 ...

随机推荐

  1. JDK反编译的两种方式

    环境 链接:https://pan.baidu.com/s/1DwWj5Kt4Gfi68k_EOAea_Q 提取码:57j2 apktools+dex2jar+gd-gui 方式一: apktools ...

  2. USB驱动分析

    INIT函数: 这是内核模块的初始化函数,其所作的工作只有注册定义好的USB驱动结构体. USB驱动结构体如下: Usb_driver中的probe函数是驱动和设备匹配成功后调用. Usb_drive ...

  3. 安装配置nginx之后访问不了nginx的问题

    我刚开通的服务器,没有设置安全组规则. 进入云服务控制台 配置规则 其他不要动,授权对象加0.0.0.0/0 就可以访问nginx了

  4. Android笔记(三十) Android中线程之间的通信(二)Handler消息传递机制

    什么是Handler 之前说过了,Android不允许主线程(MainThread)外的线程(WorkerThread)去修改UI组件,但是又不能把所有的更新UI的操作都放在主线程中去(会造成ANR) ...

  5. Win10设置开机进入启动设置模块(进入安全模式等)

    Win10设置开机进入启动设置模块(进入安全模式等) Win10系统要进入安全模式或其他启动模式选择时,需要在系统中做如下设置后,才可在开机的时候对模式进行选择,操作如下: 1.依次点选:win10设 ...

  6. Nginx上传和超时时间限制 (php上传限制) - 运维笔记

    现象说明:在服务器上部署了一套后台环境,使用的是nginx反向代理tomcat架构,在后台里上传一个70M的视频文件,上传到一半就失效了! 原因:nginx配置里限制了上传文件的大小 client_m ...

  7. Codeforces 750 E New Year and Old Subsequence

    E. New Year and Old Subsequence 思路:线段树维护矩阵乘法. 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #p ...

  8. golang 时间的比较,time.Time的初始值?

    参考: https://golangcode.com/checking-if-date-has-been-set/ https://stackoverflow.com/questions/209243 ...

  9. python RSA加密、解密、签名

    python RSA加密.解密.签名 python中用于RSA加解密的库有好久个,本文主要讲解rsa.M2Crypto.Crypto这三个库对于RSA加密.解密.签名.验签的知识点. 知识基础 加密是 ...

  10. ReLU激活函数

    参考:https://blog.csdn.net/cherrylvlei/article/details/53149381 首先,我们来看一下ReLU激活函数的形式,如下图: 单侧抑制,当模型增加N层 ...