私は今、私は、ユーザーが彼/彼女はチャットサイトを入力してユーザー名毎回入力する必要がいけないので、私は、ユーザー名を保存するためのsessionStorageを使用カントという問題を抱えているhttps://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalrSignalR jqueryののsessionStorage
から助けを借りてライブチャットを構築していウェブサイト上で
WebアプリケーションとsessionStorageで初めての作業です。
希望誰かが私を助けることができます:)
オンラインビュー:http://chat.kibshede.dk/Chat.aspx
私はそれでこれを持つクラスを持っている: 名前空間 { パブリッククラスChatHub SignalRChat:ハブ { 公共ボイド送信(文字列名、文字列メッセージ) { // broadcastMessageメソッドを呼び出してクライアントを更新します。 Clients.All.broadcastMessage(name、message); } } }
とOwinクラスで:
名前空間SignalRChat { パブリッククラス起動 { 公共ボイド構成(IAppBuilderアプリ) { //任意の接続またはハブワイヤアップとここに設定する必要があります app.MapSignalR();あなたはユーザーが設定するユーザ名を維持するためのlocalStorageにのsessionStorageを変更する必要が }} }
<!--Reference the autogenerated SignalR hub script. -->
<script src="signalr/hubs"></script>
<!--Add script to update the page and send messages.-->
<script type="text/javascript">
$(function() {
// Declare a proxy to reference the hub.
var chat = $.connection.chatHub;
// Create a function that the hub can call to broadcast messages.
chat.client.broadcastMessage = function (name, message) {
// Html encode display name and message.
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
// Add the message to the page.
$('#discussion').append('<li><strong>' + encodedName
+ '</strong>: ' + encodedMsg + '</li>');
};
if (sessionStorage.getItem('UserName') != '#ContentPlaceHolder1_displayname') {
// Get the user name and store it to prepend to messages.
var UserName = prompt('Enter your name:', '').toString();
sessionStorage.setItem('UserName', UserName);
}
// Set initial focus to message input box.
$('#ContentPlaceHolder1_message').focus();
// Start the connection.
$.connection.hub.start().done(function() {
$('#sendmessage').click(function() {
// Call the Send method on the hub.
chat.server.send(sessionStorage.getItem('UserName'), $('#ContentPlaceHolder1_message').val());
// Clear text box and reset focus for next comment.
$('#ContentPlaceHolder1_message').val('').focus();
});
});
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<asp:Panel ID="Panel_ChatContainer" CssClass="container" runat="server">
<asp:Panel ID="Panel_ChatContainer_Chat" runat="server">
<asp:TextBox ID="message" runat="server"></asp:TextBox>
<input type="button" id="sendmessage" value="Send" />
<asp:Label ID="displayname" runat="server"></asp:Label>
<ul id="discussion"></ul>
</asp:Panel>
</asp:Panel>
あなたのサイトにログインする必要はありますか?そうであれば、既存のセッションCookieを使用できます。 – MikeyM
私はログインを使用しないでください:/ – Panzer