//WSS 服务端 import win.ui; /*DSG{{*/ var winform = win.form(text="wss 服务端";right=759;bottom=469) winform.add( edit={cls="edit";left=12;top=13;right=744;bottom=448;edge=1;multiline=1;z=1} ) /*}}*/ import console; import web.SocketSharp;//打开控制台可查看服务端错误输出 //加载 SSL 证书后可改为 wss:// 。 var wssv = web.SocketSharp.Server.WebSocketServer("wss://localhost:8877") //生成测试证书,ws 协议不需要 import web.SocketSharp.Pfx; wssv.SslConfiguration.ServerCertificate = System.Security.Cryptography.X509Certificates.X509Certificate2( web.SocketSharp.Pfx("/test.pfx","123456") ); /* 第二个参数用于定义一个 WebSocket 会话类。 每次创建新的 WebSocket 连接时会调用类创建WebSocket 会话实例。 */ wssv.AddWebSocketService("/echo",class { onMessage = function(e){ /* this.socket 会自动绑定为 WebSocketSharp.Server.WebSocketBehavior 实例。 用法请参考 WebSocketSharp 文档。 必须定义 this.onMessage 事件用于接收消息。 可选定义 this.onOpen, this.onClose, this.onError 事件。 这几个事件与 WebSocketSharp.Server.WebSocketBehavio 的同名事件用法相同。 唯一不同的是首字母小写。 this.send() 等价于调用 this.socket.Send() this.sendAsync() 等价于调用 this.socket.SendAsync() 唯一区别是首字母小写。 */ winform.edit.print("服务端收到消息",e.data) //同步发送,群发用 this.broadcast this.send("你好我是服务端") //异步发送,成功回调参数 @2,异步群发用 broadcastAsync this.sendAsync("你好我是服务端",function(completed){ } ) } }); //启动服务器 wssv.Start(); winform.onDestroy = function(){ wssv.Stop();//关闭服务器,不然下次启动,短时间内端口会是占用状态 } winform.show(); win.loopMessage();