WebSocket服务端与测试端

WebSocket服务端C#

//启动websocket服务
private string StartWebSocket()
{
	var url = "wss://127.0.0.1:" + txtPort.Text;
	server = new Fleck.WebSocketServer(url);    //创建webscoket服务端实例
	string s = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "dotnet.linux.pfx");
	server.Certificate  = new X509Certificate2(s, "123456");
	var showMsg = new Action<string>(ShowMsg);
	try
	{
		server.Start(socket =>
		{
			socket.OnOpen = () =>
			{
				Log.Info("StartWebSocket", "open");
			};
			socket.OnClose = () =>
			{
				Log.Info("StartWebSocket", "Close");
			};
			socket.OnMessage = message =>
			{
				Log.Info("WebSocket.OnMessage", message);
				this.Invoke(showMsg, "收到消息: " + message);
				socket.Send("服务端收到了你的消息: " + message);
			};
		});
		return "服务启动成功: " + url;
	}
	catch (Exception ex)
	{
		//启动websocket服务失败
		Log.Info("StartWebSocket", ex.ToString());
		MessageBox.Show(string.Format("服务启动失败, 端口{0}被占用!\r\n请拍照给系统管理员", txtPort.Text), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
		throw ex;
	}
}

WebSocket客户端: html

<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>websocket client</title>
    <script type="text/javascript">
        var start = function () {
            var inc = document.getElementById('incomming');
            var wsImpl = window.WebSocket || window.MozWebSocket;
            var form = document.getElementById('sendForm');
            var input = document.getElementById('sendText');
 
            inc.innerHTML += "连接服务器..<br/>";
 
            // 创建一个新的websocket并连接
            window.ws = new wsImpl('ws://127.0.0.1:39812');
 
            // 当数据来自服务器时,将调用此方法
            ws.onmessage = function (evt) {
                inc.innerHTML += ("[来自服务器的消息] " + evt.data + '<br/>');
                console.log("[来自服务器的消息] " + evt.data);
            };
 
            // 当建立连接时,将调用此方法
            ws.onopen = function () {
                inc.innerHTML += '已建立连接.. <br/>';
            };
 
            // 当连接关闭时,将调用此方法
            ws.onclose = function () {
                inc.innerHTML += '连接已关闭.. <br/>';
            }
 
            form.addEventListener('submit', function (e) {
                e.preventDefault();
                var val = input.value;
                ws.send(val);
                input.value = "";
            });
        }
        window.onload = start;
    </script>
</head>
<body>
    <form id="sendForm">
        <span>输入内容按回车发送消息</span> <br/>
        <input id="sendText" placeholder="Text to send" />
    </form>
    <pre id="incomming"></pre>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值