WebSocket客户端接收数据

C#后台代码     

[HttpPost]

        public async Task getData (string id, string patientid)

        {

            Rootobject entity = new Rootobject();

            try

            {

                using (ClientWebSocket socket = new ClientWebSocket())

                {

                    Uri uri = new Uri("ws://127.0.0.1:8080"); // 替换为实际的 WebSocket 地址

                    await socket.ConnectAsync(uri, CancellationToken.None);

                    Console.WriteLine("Connected to WebSocket");

                    byte[] buffer = new byte[1024];

                    WebSocketReceiveResult result;

                    do

                    {

                         

                        //接收连接的套接字发出的数据

                        result = await socket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);

                       

                        if (result.MessageType == WebSocketMessageType.Text)

                        {

                            string message = System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);

                            Console.WriteLine("Received: " + message);

                        }

                    } while (!result.CloseStatus.HasValue);

                    await socket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None);

                    Console.WriteLine("WebSocket closed");

                }

           }

            catch (Exception ex)

            {

            }

        }


JS方法接收数据

  1. web页面

               

 <label id="address">服务端地址:</label>
                <input name="" id="IpAddress" value="ws://127.0.0.1:8080" />
                <button type="submit" onclick="Connect();">连接</button><br />


                <label id="a">Token</label>
                <input name="" id="ValueA" value="544ea9c2-de42-448e-a818-f4f7ecb7bb1c" />
                <button type="submit" onclick="SendData();">提交</button><br />

                <label id="b">accessToken</label>
                <input name="" id="ValueB" value="544ea9c2-de42-448e-a818-f4f7ecb7bb1c" />

            <div id="txtInfo" style="border: dashed 1px black;margin-top: 10px;"></div>
            <div id="main" style="height:300px;"></div>

  <script type="text/javascript">

        var test = function () {

            var print = document.getElementById('txtInfo');
            var form = document.getElementById('Form');
            var inputStrA = document.getElementById('ValueA');
            var ipaddress = document.getElementById('IpAddress').value;
            print.innerHTML += "connecting to server ..<br/>";
          
            

            var url = ipaddress + "?access_token" + document.getElementById('ValueA').value;
            window.ws = new WebSocket(url); //连接服务


            //监听消息状态
            ws.onmessage = function (msg) {
                //var jsobj = JSON.parse(msg.data);//json字符串转为对象 
                print.innerHTML = msg.data + '<br/>'
             
            }
            //监听链接状态
            ws.onopen = function () {
                print.innerHTML += 'connection open <br/>'
            }
            //监听关闭状态
            ws.onclose = function () {
                print.innerHTML += 'connection closed<br/>';
            }

            //向服务器端发送消息
            addEventListener('Connect', function (e) {
                e.preventDefault();
            })
        }
        window.onload = test();

        function Connect() {
            test();
        }

    </script>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值