发布
社区首页 >问答首页 >如何在SignalR状态变量中存储值

如何在SignalR状态变量中存储值
EN

Stack Overflow用户
提问于 2014-06-20 06:18:42
回答 1查看 1.6K关注 0票数 1

我使用OnConnected和OnDisconected来捕获用户并减少内存。

我的问题是我不能在SignalR中赋值任何变量。我使用了下面的代码。

当我读取Clients.Caller.userid时,它总是空的。但是,在赋值后,我可以立即很好地读取它,这个xxSameProcess变量不为空。

我是不是漏掉了什么?

代码语言:javascript
代码运行次数:0
复制
    public override System.Threading.Tasks.Task OnConnected()
    {
        var user = CreateUser();
        Clients.Caller.userid = user.UserId;
        object xxSameProcess = Clients.Caller.userid;

        return base.OnConnected();
    }
    public override System.Threading.Tasks.Task OnDisconnected()
    {
        object xx = Clients.Caller.userid;

        CreateDelete( Clients.Caller.userid );

        return base.OnConnected();
    }
EN

回答 1

Stack Overflow用户

发布于 2014-06-23 20:45:18

在我这边,当客户端连接时,我存储来自客户端的变量

代码语言:javascript
代码运行次数:0
复制
        <script src="~/signalr/hubs"></script>
        <script type="text/javascript">
            (function ($) {
                //some stuff
                $.connection.hub.qs = { 'uid': '@guid' };
                $.connection.hub.start();
            })(jQuery);
        </script>

,我可以通过查询字符串从服务器访问它。

代码语言:javascript
代码运行次数:0
复制
public override Task OnConnected()
    {
        var uid = Context.QueryString["uid"];
        //some stuff

    return base.OnConnected();
}

public override Task OnDisconnected()
{
    var uid = Context.QueryString["uid"];
    //some stuff

    return base.OnDisconnected();
}

public override Task OnReconnected()
{
    var uid = Context.QueryString["uid"];

    //some stuff

    return base.OnReconnected();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24317143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档