signalr

Signalr:

                            用来客户端和服务器的消息调用.

 

1          导入我们的jq和signalr的js   

1.1         在vs控制台下载我们的signalr

install-package Microsoft.AspNet.SignalR -version 2.0.3

 

 

2          建一个我们的类Startup的类

 

这个事我们一般笔记本就可以的

public class Startup

    {

        publicvoid Configuration(IAppBuilder app)

        {

           app.MapSignalR();

        }

    }

 

这个是我们学校的代码

using Microsoft.Owin;

using Owin;

 

[assembly:OwinStartupAttribute(typeof(Microsoft.AspNet.SignalR.StockTicker.Startup),"Configuration")]

namespace Microsoft.AspNet.SignalR.StockTicker

{

    

    publicstatic class Startup

    {

        publicstatic void ConfigureSignalR(IAppBuilder app)

        {

           app.MapSignalR();

        }

 

        publicstatic void Configuration(IAppBuilder app)

        {

           Microsoft.AspNet.SignalR.StockTicker.Startup.ConfigureSignalR(app);

        }

    }

}

 

 

3          创建一个文件夹(命名规则:Hubs):用来放入我们的客户端调用服务器的方法

里面一定要有:

     ///<summary>

        ///链接成功的时候执行

        ///</summary>

        ///<returns></returns>

        public override Task OnConnected()

        {

            return base.OnConnected();

        }

 

 

 

 

 

4          客户端调用我们服务器

引入我们的js和

<scriptsrc="~/signalr/hubs"></script>

 

1:关联我们的服务器的hub类

var chat = $.connection.类名

启动我们的服务

$.connection.hub.start();

 

我们用chat.server.方法名字   来调用我们服务器的方法

 

如果我们要服务器调用我们的客户端的方法

chat.client.方法名

 

 

 

 

 

 

 

 

例子

$(function () {

        //关联一个我们的服务器的hub

        var chat = $.connection.sendMessge;

        //启动服务

        $.connection.hub.start();

 

        //客户端提供一个方法,让我们的服务器主动调用

        chat.client.getMsg = function (username_text,msg) {

            //alert("客户端被服务器主动调用" + msg);

            $("#ul_msg").append("<li>" + username_text + ":" + msg + "</li>");

        }

 

        //登陆成功

        chat.client.login_cg_back = function (username, cid) {

            $("#select_text").append("<optionvalue='" +cid + "'>" + username + "</option>");

        }

 

        //发送消息

        $("#msg_sendbtn").click(function () {

            //调用前台的方法

      chat.server.sendmsg( $("#select_text").val(),$("#username").val(), $("#msg").val());

            chat.server.my_msg($("#username").val(), $("#msg").val());

           

        });

});

 

 

 

服务器代码

  public void sendmsg(string cid,string username,string msg)

        {

            Clients.Client(cid).getMsg(username,msg);

            //注意这里有三个参数  all caller others   分别是全部,自己,其他

        }

        ///<summary>

        ///给自己做个显示

        ///</summary>

        ///<param name="username"></param>

        ///<param name="msg"></param>

        public void my_msg( string username, string msg)

        {

            Clients.Caller.getMsg(username, msg);

        }

 

        public void login_cg(string username)

        {

            Clients.Others.login_cg_back(username, Context.ConnectionId);

 

        }

 

        ///<summary>

        ///链接成功的时候执行

        ///</summary>

        ///<returns></returns>

        public override Task OnConnected()

        {

            return base.OnConnected();

        }

 

 

 

 

Context.ConnectionId   得到这个通道的哈希值

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值