微软SignalR案例解读和测试

目的:实现不同的界面同步更新数据

缺陷:网络发布后不能使用,没有加密处理

主体运行流程:

1.启动运行浏览器

2.执行Startup类中的app.MapSignalR();方法

3.引用JS脚本

4.脚本执行弹窗输入名字

5.在界面中输入值并按提交

6.提交的数据到ChatHub类中的Send()方法并执行 Clients.All.broadcastMessage(name, message);。

7. Clients.All.broadcastMessage(name, message);界面有声明过chatHub类的界面都会调用更新

8.改变界面的数据

官方案例地址:

http://code.msdn.microsoft.com/SignalR-Getting-Started-b9d18aa9

测试:

 $(function () {

            // 声明代理以引用集线器。
            var chat = $.connection.chatHub;

            //创建一个集线器可以调用广播消息的函数。
            chat.client.broadcastMessage = function (name, message) {

                // HTML编码显示名称和消息
                var encodedName = $('

').text(name).html();
                var encodedMsg = $('
').text(message).html();
                // 将消息添加到页面
                $('#discussion').append('
  • ' + encodedName
                        + '
    :  ' + encodedMsg + '
  • ');
                };

                /*
                alert() 弹出个提示框 (确定) 
                confirm() 弹出个确认框 (确定,取消) 
                prompt() 弹出个输入框 让你输入东西*/
                //获取用户名并将其存储在消息中
                $('#displayname').val(prompt('Enter your name:', ''));
               // $('#displayname').val("35");
                // 将初始焦点设置为消息输入框
                $('#message').focus();

                // 启动连接。
                $.connection.hub.start().done(function () {
                    $('#sendmessage').click(function () {

                        // 调用集线器上的发送方法
                        chat.server.send($('#displayname').val(), $('#message').val());
                        // 清除文本框并重新设置下一个注释的焦点

                        $('#message').val('').focus();
                    });
                });
            });

    主要是上面的函数起到界面的更新。

    总之:1.弹框输入 #displayname 的值。2.chat.server.send($('#displayname').val(), $('#message').val());获取输入框的值。3.执行方法send()4.Js脚本识别声明过的界面从而更新重新连接。

    微软SignalR案例解读和测试_第1张图片微软SignalR案例解读和测试_第2张图片微软SignalR案例解读和测试_第3张图片微软SignalR案例解读和测试_第4张图片

    能实现界面的同步更新,另外一个界面不去要做任何操作。

    个人理解:

    是服务器向界面发送数据,界面接收,js处理。

    模型:

    界面1输入(更新)——》Api——》界面2更新

    还不够的地方:

    1.还没和实体类结合测试

    2.没有和数据库结合

    3.没有真正的形成API模型

    4.没有加密处理

    5.没有实现多用户测试

    希望朋友们提供解决方案,谢谢了。

     

    程序开发(ASP.NET、C#)、网站建设(H5)、小程序、公众号等相关开发联系QQ:1174787689 备注 程序开发合作

    你可能感兴趣的:(C#基础,测试,工具类,SignalR)