websocket-sharp.dll 源码
https://github.com/aardio/websocket-sharp 注意:
使用 console.open 打开控制台可以查看 web.SocketSharp 输出的错误信息。
参考文档
支持 ws,wss 的 WebSocket 组件,这是一个 .NET 组件。
仅适用于界面线程。
.NET 名字空间 WebSocketSharp.Net 的别名
调用 WebSocketSharp 创建 WebSocket 客户端对象。
参数 @1 可指定端口号,也可指定 ws 或 wss 协议服务器地址。
返回 .NET 对象,用法请参考 dotNet 库以及范例
调用 WebSocketSharp 创建 WebSocket + HTTP 服务端对象。
参数 @1 可指定 https 或 https 协议服务器地址。
返回 .NET 对象,用法请参考 dotNet 库以及范例。
注意用 console.open 打开控制台可查看 WebSocketSharp 输出的错误信息
调用 WebSocketSharp 创建 WebSocket 服务端对象。
参数 @1 可指定 ws 或 wss 协议服务器地址。
返回 .NET 对象,用法请参考 dotNet 库以及范例。
注意用 console.open 打开控制台可查看 WebSocketSharp 输出的错误信息
已关闭
正在关闭
正在连接
已连接
关闭连接。
参数 @1 可选用数值指定关闭代码,参数 @2 可选用字符串指定关闭理由
关闭连接,异步非阻塞执行。
参数 @1 可选用数值指定关闭代码,参数 @2 可选用字符串指定关闭理由
连接 WebSocket 服务器
连接 WebSocket 服务器,异步非阻塞执行
Ping 消息是否触发 OnMessage
OnMessage 是否处理 Ping 消息。
回调参数 e 的 e.IsPing 属性可以判断是否 Ping 消息
是否允许重定向
扩展,字符串
wssNetClientObject.Headers["/*指定自定义 HTTP 请求头名字,不包含冒号。
值必须是字符串 或 null。
值为 null 时可清除之前设置的自定义请求头*/"] = ""
是否连接状态
是否安全连接
wssNetClientObject.OnClose = function(sender, e){
/*接口已关闭。
e.Code 为错误码数值,e.Reason 为表示错误原因的字符串*/
}
wssNetClientObject.OnError = function(sender, e){
/*"出错了, e.Message 为错误消息,字符串值。
如果错误为异常,则 e.Exception 为 System.Exception 对象*/
}
wssNetClientObject.OnMessage = function(sender, e){
/*收到消息", e.Data 为收到的字符串*/
}
wssNetClientObject.OnOpen = function(sender, e){
/*连接已打开*/
}
Origin 请求头
协议
连接状态 web.SocketSharp.WebSocketState 枚举
发送字符串或 buffer 对象
wssNetClientObject.SendAsync(/*指定要异步发送的字符串或 buffer,
发送完成回调参数 @2 指定的函数*/,function(completed){
})
设置 Cookie 参数为 web.SocketSharp.Net.Cookie 对象
设置身份验证信息。
设置身份验证信息。\ @nusername 指定用户名, @password 指定密码。
如果 @preAuth 为 true 则第一次请求就发送验证信息。
否则在请求失败后再发送
设置代理服务器
设置代理服务器
连接 URL,System.Uri 对象
等待时间 System.TimeSpan 对象
设置认证令牌(token)。
@token 可指定令牌,也可以指定返回令牌的网址。
@tokenType 为可选参数,默认为"Bearer"。
如果指定了令牌,则会添加请求头 "Authorization:Bearer 令牌"。
@tokenType 也可以指定为空字符串。
设置 SSL 协议版本,默认为 12288/*tls13*/ | 3072/*Tls12*/| 768/*Tls11*/ | 192/*Tls*/
wssNetHttpServerObject.AddWebSocketService("/echo",class {
onMessage = function(e){
/*
this.socket 会自动绑定为 WebSocketSharp.Server.WebSocketBehavior 实例。
用法请参考 WebSocketSharp 文档。
上面的参数 @1 指定了服务目录为 "/echo"。
参数 @2 则需要指定一个 WebSocket 会话类。
每次创建新的 WebSocket 连接时会调用类创建 WebSocket 会话实例。
必须定义 this.onMessage 事件用于接收消息。
可选定义 this.onOpen, this.onClose, this.onError 事件。
这几个事件与 WebSocketSharp.Server.WebSocketBehavio 的同名事件用法相同。
唯一不同的是首字母小写。
发送消息函数:
this.send() 等价于调用 this.socket.Send() 同步发送消息。
this.sendAsync() 等价于调用 this.socket.SendAsync() 异步发送消息。
唯一区别是首字母小写。
*/
/* 同步发送消息,e.data 就是客户端发过来的消息 */
this.send(e.data)
/* 异步发送消息,成功回调参数 @2 */
this.sendAsync(e.data,function(completed){
} )
}
});
身份验证方法,
Digest 验证设为 1,Basic 验证设为 8
网站根目录,需要用 io.fullpath 转换为绝对路径
启动服务器
停止服务器
SSL 证书配置。\bwss 服务端必须指定证书,网上找个在线工具生成测试证书也行
SSL 证书配置。\bwss 服务端必须指定证书,网上找个在线工具生成测试证书也行
wssNetHttpServerObject.SslConfiguration.ServerCertificate = System.Security.Cryptography.X509Certificates.X509Certificate2(
io.fullpath("\/*指定证书路径*/.pfx"), "密码"
);
wssNetHttpServerObject.SslConfiguration.ServerCertificate = System.Security.Cryptography.X509Certificates.X509Certificate2(
io.fullpath("\/*指定证书路径*/.pfx"), "密码"
);
wssNetServerObject.AddWebSocketService("/echo",class {
onMessage = function(e){
/*
this.socket 会自动绑定为 WebSocketSharp.Server.WebSocketBehavior 实例。
用法请参考 WebSocketSharp 文档。
上面的参数 @1 指定了服务目录为 "/echo"。
参数 @2 则需要指定一个 WebSocket 会话类。
每次创建新的 WebSocket 连接时会调用类创建 WebSocket 会话实例。
必须定义 this.onMessage 事件用于接收消息。
可选定义 this.onOpen, this.onClose, this.onError 事件。
这几个事件与 WebSocketSharp.Server.WebSocketBehavio 的同名事件用法相同。
唯一不同的是首字母小写。
发送消息函数:
this.send() 等价于调用 this.socket.Send() 同步发送消息。
this.sendAsync() 等价于调用 this.socket.SendAsync() 异步发送消息。
唯一区别是首字母小写。
*/
/* 同步发送消息,e.data 就是客户端发过来的消息 */
this.send(e.data)
/* 异步发送消息,成功回调参数 @2 */
this.sendAsync(e.data,function(completed){
} )
}
});
启动服务器
停止服务器。
建议在窗体 onDestroy 事件中调用此函数。
不然下次启动,短时间内端口会是占用状态
SSL 证书配置。\bwss 服务端必须指定证书,网上找个在线工具生成测试证书也行
设置 SSL 协议版本,默认为 12288/*tls13*/ | 3072/*Tls12*/| 768/*Tls11*/ | 192/*Tls*/
wssNetServerObject.SslConfiguration.ServerCertificate = System.Security.Cryptography.X509Certificates.X509Certificate2(
io.fullpath("\/*指定证书路径*/.pfx"), "密码"
);