Asp.net Signal R 실시 간 채 팅 프로그램 만 들 기
ASP.NET 을 사용 하면 SignalR 2 에서 실시 간 채 팅 프로그램 을 만 듭 니 다.Signal R 을 MVC 5 프로그램 에 추가 하고 채 팅 보 기 를 만들어 메 시 지 를 보 내 고 표시 합 니 다.
데모 에 서 는 SignalR 개발 미 션 을 U 포함 하여 학습 합 니 다.
MVC 5 애플 리 케 이 션 에 SignalR 도서관 을 추가 합 니 다.
클 라 이언 트 에 내용 을 전달 하기 위해 서 클 라 이언 트 와 호 연 시작 클래스 를 만 듭 니 다.
웹 페이지 에 있 는 SignalR jQuery 라 이브 러 리 를 사용 하여 메 일 을 보 내 고 클 러 스 터 에서 업 데 이 트 를 표시 합 니 다.
아래 화면 스냅 샷 은 브 라 우 저 에서 실행 중인 완 료 된 채 팅 프로그램 을 보 여 줍 니 다.
실현
ASP.NET MVC 5 프로그램 을 만 들 고 Signal R 라 이브 러 리 를 설치 하 며 채 팅 프로그램 을 추가 하고 만 듭 니 다.
1).Visual Studio 에서 C\#ASP.NET 응용 프로그램의 대상.NET 프레임 워 크 4.5 를 만 들 고 Signalrchat 라 고 이름 을 짓 고 확인 을 누 르 십시오.
2).New ASP.NET Project 대화 상자 에서 MVC 를 선택 하고 인증 변경 을 누 르 십시오.
메모:프로그램 이 서로 다른 인증 공급 자 를 선택 하면 Startup.cs 클래스 를 만 듭 니 다.인증 이 없 는 모든 것 을 선택 하여 Startup 클래스 를 만 듭 니 다.
3).SignalR 설치
도구|라 이브 러 리 관리자|패키지 관리자 콘 솔 을 열 고 다음 명령 을 실행 합 니 다.이 단 계 는 프로젝트 에 스 크 립 트 파일 을 추가 하고 signalR 기능 을 사용 하 는 프로그램 집합 참조 입 니 다.
입력:install-package Microsoft.AspNet.SignalR
설치 가 완료 되 었 습 니 다.Scripts 폴 더 에 다음 파일 이 나 타 났 습 니 다.
4).Startup 클래스 만 들 기:
루트 디 렉 터 리 아래 에 클래스 를 만 듭 니 다.이름 은 Startup 입 니 다.
using Owin;
using Microsoft.Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
5).프로젝트 에 Hubs 폴 더 를 추가 하고 기 존 항목 을 추가 합 니 다.마우스 우 클릭 으로 Hubs 폴 더 를 누 르 십시오.추가|새 항목 을 누 르 고 Visual C\#|Web|을 선택 하 십시오.그러면 SignalR 노드 는 설 치 된 창 에서 중심 창 에서 SignalR 허브 클래스(v2)를 선택 하고 ChatHub.cs 라 는 이름 을 만 듭 니 다.
코드 수정:
using System;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRChat
{
public class ChatHub : Hub
{
public void Send(string name, string message)
{
// Call the addNewMessageToPage method to update clients.
Clients.All.addNewMessageToPage(name, message);
}
}
}
6).HomeController 클래스 를 편집 하면 Controllers/HomeController.cs 에서 다음 과 같은 방법 을 클래스 에 추가 합 니 다.이 방법 은 채 팅 보 기 를 되 돌려 줍 니 다.다음 단계 에서 만 들 것 입 니 다.
public ActionResult Chat()
{
return View();
}
7).Chat()방법 에서 우 클릭>보기 페이지 추가코드 변경:
@{
ViewBag.Title = "Chat";
}
<h2>Chat</h2>
<div class="container">
<input type="text" id="message" />
<input type="button" id="sendmessage" value="Send" />
<input type="hidden" id="displayname" />
<ul id="discussion"></ul>
</div>
@section scripts {
<!--Script references. -->
<!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
<!--Reference the SignalR library. -->
<script src="~/Scripts/jquery.signalR-2.0.3.min.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="~/signalr/hubs"></script>
<!--SignalR script to update the chat page and send messages.-->
<script>
$(function () {
// server Hub class , ChatHub(Hubs )
var chat = $.connection.chatHub;
// client javascript function, server hub, dynamic , Clients javascript function
chat.client.addNewMessageToPage = function (name, message) { // fuction(name,message)=>ChatHub.cs Send(string name, string message)
// server sendMessage , server push message , wholeMessage
$('#discussion').append('<li><strong>' + htmlEncode(name)
+ '</strong>: ' + htmlEncode(message) + '</li>');
};
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// connection
$.connection.hub.start().done(function () {
$('#sendmessage').click(function () {
// server Hub , #message server
chat.server.send($('#displayname').val(), $('#message').val());
$('#message').val('').focus();
});
});
});
// This optional function html-encodes messages for display in the page.
function htmlEncode(value) {
var encodedValue = $('<div />').text(value).html();
return encodedValue;
}
</script>
}
F5 프로젝트 를 실행 하면 위의 효 과 를 실현 할 수 있 고 사용자 가 실시 간 으로 실시 간 동기 채 팅 에 가입 할 수 있다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.