SignalR jquery会话存储

SignalR jquery会话存储,jquery,signalr,sessionstorage,Jquery,Signalr,Sessionstorage,我已经建立了一个livechat,有来自 现在我有一个问题,我不能使用sessionStorage来保存用户名,因此用户不必每次进入网站上的聊天网站时都键入用户名 这是我第一次使用web应用程序和会话存储 希望有人能帮我:) 联机查看: 我有一门课,里面有: 名称空间信号呼叫 { 公共类聊天室:聊天室 { 公共无效发送(字符串名称、字符串消息) { //调用broadcastMessage方法来更新客户端。 Clients.All.broadcastMessage(名称、消息); } } } 和

我已经建立了一个livechat,有来自

现在我有一个问题,我不能使用sessionStorage来保存用户名,因此用户不必每次进入网站上的聊天网站时都键入用户名

这是我第一次使用web应用程序和会话存储

希望有人能帮我:)

联机查看:

我有一门课,里面有: 名称空间信号呼叫 { 公共类聊天室:聊天室 { 公共无效发送(字符串名称、字符串消息) { //调用broadcastMessage方法来更新客户端。 Clients.All.broadcastMessage(名称、消息); } } }

和一个Owin课程,包括:

名称空间信号呼叫 { 公营创业 { 公共无效配置(IAppBuilder应用程序) { //任何连接或集线器接线和配置都应位于此处 app.mapsigner(); } } }


$(函数(){
//声明代理以引用中心。
var chat=$.connection.chatHub;
//创建一个中心可以调用以广播消息的函数。
chat.client.broadcastMessage=函数(名称、消息){
//Html编码显示名称和消息。
var encodedName=$('').text(name).html();
var encodedMsg=$('').text(message.html();
//将消息添加到页面。
$(“#讨论”)。追加(“
  • ”+encodedName +“:”+encodedMsg+”
  • ); }; if(sessionStorage.getItem('UserName')!='#ContentPlaceHolder1_displayname')){ //获取用户名并将其存储到消息前。 var UserName=prompt('输入您的姓名:','').toString(); setItem('UserName',UserName); } //将初始焦点设置为消息输入框。 $(“#内容占位符1_消息”).focus(); //启动连接。 $.connection.hub.start().done(函数(){ $('#sendmessage')。单击(函数(){ //在集线器上调用Send方法。 send(sessionStorage.getItem('UserName'),$('ContentPlaceHolder1_message').val()); //清除文本框并重置下一条注释的焦点。 $('#ContentPlaceHolder1_message').val(''.focus(); }); }); });
    
    

      您需要将sessionStorage更改为localStorage,以保留用户设置的用户名。会话存储数据仅在用户关闭选项卡之前持续存在,而本地存储将持续存在

      您的用户必须登录到您的站点吗?如果是这样,您可以使用他们现有的会话cookie。我不使用login:,但我不能使用sessionstorage保存用户名吗?我在登录中使用session anyways您可以保存他们在任何对象中输入的内容,以便为您的用户记录会话id,但如果您需要,这样他们就不必在每次导航到您的站点时输入用户名,您需要一些在用户端持久存在的内容。你应该在覆盖OnConnect/OnDisconnect的代码中加一个断点,看看你在应用程序中导航时调用它们的频率。我让ben尝试将用户名保存在sessionstorage中,并做了一个“如果”,但由于某种原因,会话或其他地方无法使用if(sessionstorage.getItem('username'))!='#ContentPlaceHolder1_displayname'){var UserName=prompt('Enter your name:','').toString();sessionStorage.setItem('UserName',UserName);}很抱歉我完全错过了。我编辑了我的答案。