fekre-bekr,learning,source,سورس,سورس رایگان,آموزش,اخبار,فناوری اطلاعات,mvc,.net,ساری,آموزشگاه,asp.net,c#.net,programing,c++,vb,آموزش برنامه نویسی,دانلود

اشتراک در سایت


مطالب تصادفی
اخبار و مقالات در فکر بکر آشنایی با SignalR در Asp.net core

در این آموزش به ساخت یک برنامه real-time با استفاده از SignalR در Asp.net core 2.1 خواهیم پرداخت. ...


اخبار و مقالات در فکر بکر مروری بر Identity در Asp.net core2.1 (بخش دوم)

ASP.NET Core Identity یک سیستم جامع جهت مدیریت کاربران و نقشها و همینطور ورود و خروج در برنامه های ASP.NET Core می باشد. در این آ ...


اخبار و مقالات در فکر بکر آموزش ایجاد برنامه نصب (setup) قسمت سوم

در مراحل قبلی نحوه ایجاد فایل configuration و فایل نصب sql server و همچنین ایجاد setup برای نرم افزاری که باید در سیستم مشتری نصب ...


اخبار و مقالات در فکر بکر آموزش ایجاد لینک دانلود در mvc

در این برنامه به آموزش نحوه ایجاد لینک دانلود در برنامه های از نوع Asp.Net MVC می پردازیم. لطفا به ادامه مطلب توجه کنید. ...


اخبار و مقالات در فکر بکر آموزش Repository pattern در Asp.net MVC

Repository یک مخزن یا انباره ای میباشد که میتواند بعنوان لایه DAL در برنامه نویسی مورد استفاده قرار گیرد.در این مثال قصد داریم بر ...


اخبار و مقالات در فکر بکر آشنایی با مفهوم Generic در C#.net

Generics یکی از ویژگی های قدرتمند برای بسیاری از زبان های برنامه نویسی از جمله C# است. که به شما امکان می دهد کدی بنویسید که می ...


اخبار و مقالات در فکر بکر پیاده سازی سیستم احراز هویت کاربران در Asp.net MVC (بخش دوم)

در ادامه دیتابیس و مدل برنامه را طراحی میکنیم بگونه ای که کاربران ثبت نام شده و مدیر سیستم بتوانند به صفحات خود باتوجه به نقشی ...


اخبار و مقالات در فکر بکر آموزش ایجاد برنامه چت دوطرفه با استفاده از Socket در سی شارپ

در این برنامه با استفاده از Socket و پروتکل UDP دو برنامه جهت ارسال و دریافت پیام بصورت دوطرفه ایجاد میکنیم. لطفا به ادامه مطلب ت ...


اخبار و مقالات در فکر بکر آموزش ارسال ایمیل توسط اکانت گوگل به زبان C#.net

در این مقاله شما را با روش ارسال ایمیل اشنا خواهیم ساخت لطفا به ادامه مطلب توجه نمایید. ...


اخبار و مقالات در فکر بکر آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server

در این آموزش به چگونگی استفاده از یک برنامه ویندوزی بصورت تحت شبکه توسط چندین سیستم خواهیم پرداخت. معمولا هر برنامه کاربردی دارا ...


اخبار و مقالات در فکر بکر سورس برنامه پردازش تصویر در #C

در این سورس مواردی مانند لبه یابی بزرگ نمایی تصاویر و همچنین تبدیل حالت متون یا تصاویر توپر به توخالی و یا بصورت برعکس این موضوع ...


اخبار و مقالات در فکر بکر آموزش ارسال و دریافت فایل در برنامه تحت شبکه با استفاده ار سوکت (Socket)

در این آموزش فایلی را در شبکه با استفاده از سوکت و پروتکل TCP ارسال و سپس دریافت میکنیم.لطفا به ادامه مطلب توجه نمایید. ...


اخبار و مقالات در فکر بکر مقایسه واحدهای اندازه گیری rem و em در css

وقتی صحبت از واحدهای اندازه گیری در CSS به میان می آید، ما انتخاب های خوبی داریم. در دنیای امروزی طراحی‌های واکنش‌گرا، واحدهای ن ...


اخبار و مقالات در فکر بکر آموزش publish کردن برنامه های Asp.net core بر روی سرور iis

در این آموزش ابتدا یک پروژه ساده با استفاده از asp.net core 2.1 ایجاد میکنیم و سپس آنرا بر روی سرور iis قرار خواهیم داد. ...


پیوندها
5 (1)

در این آموزش به ساخت یک برنامه real-time با استفاده از SignalR در Asp.net core 2.1 خواهیم پرداخت.
گروه : Asp.net Core
تاریخ انتشار: 1397/04/01

فکر بکر

در این آموزش به ساخت یک برنامه چت بصورت real-time با استفاده از SignalR در Asp.net core 2.1 خواهسم پرداخت.

مواردیکه که در این آموزش مورد بحث قرار خواهند گرفت شامل گزینه های زیر می باشد.

  1. نحوه ایجاد پروزه مبتنی بر SignalR در Asp.net Core 2.1
  2. ایجاد SignalR hub جهت ارتباط بین client و server
  3. پیکربندی کلاس sturtup.cs

 قبل از شروع آموزش نیاز به نصب و بروزرسانی برنامه های مورد نیاز در این اموزش دارید که شامل موارد زیر می باشد.

 برای شروع یک پروژه بنام SignalRChat با توجه به شکل زیر ایجاد نمایید.

signalRproject

signalr project 02

در محیط visual studio کتابخانه های مورد نیاز سمت سرور با استفاده از Microsoft.AspNetCore.SignalR در قالب پروژه ای که بصورت ASP.NET Core Web Application ایجاد کردیم موجود می باشد لذا برای نصب کتابخانه های جاوااسکریپت SignalR کلاینت از طریق npm عملیات نصب را انجام می دهیم.

بنا براین از قسمت Package Manager Console دستورات زیر را اجرا کنید.


npm init -y
npm install @aspnet/signalr

پوشه ای بنام signalr درون پوشه lib ایجاد نمایید سپس فایل signalr.js را از مسیر  node_modules\@aspnet\signalr\dist\browser  کپی نمایید و درون پوشه signalr قرار دهید.

اکنون یک پوشه بنام Hubs ایجاد میکنیم و درون آن کلاسی بنام CahtHub که از کلاس Microsoft.AspNetCore.SignalR.Hub ارث بری میکنید ، بصورت زیر ایجاد کنید.


using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;

namespace SignalRChat.Hubs
{
    public class ChatHub : Hub
    {
        public async Task SendMessage(string user, string message)
        {
            await Clients.All.SendAsync("ReceiveMessage", user,message);
        }
    }
}

در این برنامه هدفمان ارسال پیام بصورت بلادرنگ به تمامی کلاینتهای متصل به سرور می باشد.که این عمل توسط تابع SendMessage انجام میگیرد.

اکنون وقت آن رسیده است تا به پیکربندی کلاس startup.cs برای اتصالات به SignalR و مدیریت Rout آن در این کلاس بپردازیم.لذا محتویات توابع ConfigureServices و Configure را بصورت زیر ویرایش نمایید.

  public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddCors(options => options.AddPolicy("CorsPolicy",
           builder =>
           {
               builder.AllowAnyMethod().AllowAnyHeader()
                      .WithOrigins("http://localhost:55830")
                      .AllowCredentials();
           }));

            services.AddSignalR();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();
            app.UseCors("CorsPolicy");
            app.UseSignalR(routes =>
            {
                routes.MapHub<ChatHub>("/chathub");
            });

            app.UseMvc();
        }

برای ایجاد کدهای جاوااسکریپت client یک فایل با نام chat.js درون مسیر wwwroot\js ایجاد نمایید و محتویات آنرا بصورت زیر ویرایش کنید.

// The following sample code uses modern ECMAScript 6 features 
const connection = new signalR.HubConnectionBuilder()
    .withUrl("/chatHub")
    .build();

connection.on("ReceiveMessage", (user, message) => {
    const msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    const encodedMsg = user + " says " + msg;
    const li = document.createElement("li");
    li.textContent = encodedMsg;
    document.getElementById("messagesList").appendChild(li);
});

connection.start().catch(err => console.error(err.toString()));

document.getElementById("sendButton").addEventListener("click", event => {
    const user = document.getElementById("userInput").value;
    const message = document.getElementById("messageInput").value;
    connection.invoke("SendMessage", user, message).catch(err => console.error(err.toString()));
    event.preventDefault();
});

سپس فایل index.cshtml که درون پوشه pages قرار دارد را بصورت زیر ویرایش کنید.

@page
    <div class="container">
        <div class="row">&nbsp;</div>
        <div class="row">
            <div class="col-6">&nbsp;</div>
            <div class="col-6">
                User..........<input type="text" id="userInput" />
                <br />
                Message...<input type="text" id="messageInput" />
                <input type="button" id="sendButton" value="Send Message" />
            </div>
        </div>
        <div class="row">
            <div class="col-12">
                <hr />
            </div>
        </div>
        <div class="row">
            <div class="col-6">&nbsp;</div>
            <div class="col-6">
                <ul id="messagesList"></ul>
            </div>
        </div>
    </div>
    <script src="~/lib/signalr/signalr.js"></script>    
    <script src="~/js/chat.js"></script>
    @*<script src="~/js/es5-chat.js"></script>*@

اکنون برنامه را اجرا کنید و آنرا در دو مرورگر باز نمایید با ارسال پیام از یک کلاینت خروجی آن بصورت بلادرنگ (بدون refresh شدن صفحه ) در مرورگر دیگر نیز نمایش داده خواهد شد .

signalr chat

شما اولین نفری باشید که نظر میدهید

AUkJUr

آموزش کار با کوکی ها (Cookie) در Asp.net core -------- آموزش رمزنگاری فایلها در asp.net core -------- مقایسه واحدهای اندازه گیری rem و em در css -------- آشنایی با مفهوم Generic در C#.net -------- نحوه خواندن اطلاعات از فایل appsetting.json در Asp.net Core -------- آموزش استفاده از CQRS و Mediator در Asp.Net Core -------- نحوه ایجاد image checkbox در html css -------- عملیات crud و WebApi در Asp.net 6 -------- آموزش ایجاد custom model binder در Asp.net core -------- آموزش استفاده از Log4net در Asp.net 5 -------- آموزش پیاده سازی UnitOfWork در Asp.net Core قسمت اول -------- پیاده سازی Repository Pattern بصورت Generic Class -------- وارد کردن فقط حروف فارسی و جلوگیری از ورود حروف فارسی در تکست باکس با استفاده از JQuery -------- سورس استفاده از کامپوننت Roxy File manager در Asp.net core -------- آموزش ساخت صفحه Page Not Found (404) در Aspnet core -------- آموزش ایجاد Tag Helper سفارشی در Asp.net core -------- آموزش نحوه ایجاد Model برای دیتابیس موجود در Entity Framework Core -------- آموزش نحوه Upload و Download در Asp.net core 2 -------- آموزش dependency injection در Asp.net core 2 -------- آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server -------- آموزش استفاده از Bundler & Minifier در Asp.Net Core -------- مروری بر Identity در Asp.net core2.1 (بخش دوم) -------- مروری بر Identity در Asp.net core2.1 (بخش اول) -------- آموزش مبحث Single Responsibility Principle (SRP) از بخش اصول طراحی شی گرا (SOLID) -------- آموزش publish کردن برنامه های Asp.net core بر روی سرور iis -------- پیاده سازی مسیریابی با استفاده از الگوریتم پیمایش اول سطح یا جستجوی اول سطح (BFS) در سی شارپ -------- آشنایی با SignalR در Asp.net core -------- آموزش استفاده از کلاس SeedData در Asp.net Core -------- قالب سایت فروشگاهی -------- آموزش ایجاد برنامه نصب (setup) قسمت سوم -------- آموزش ایجاد برنامه نصب (setup) قسمت دوم -------- آموزش ایجاد برنامه نصب (setup) قسمت اول -------- آموزش عملیات CRUD با استفاده از Ragor Pages در Asp.net Core2.0 -------- آموزش ثبت تصویر توسط دوربین در برنامه نویسی اندروید به زبان c#.net -------- حل مساله n وزیر با استفاده از الگوریتم ژنتیک و بصورت گرافیکی -------- آموزش نمایش تصویر loading در سمت client جهت بارگزاری صفحات با حجم زیاد از سرور در asp.net mvc -------- آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc -------- آموزش ایجاد breadcrumb با استفاده از sitemap در MVC -------- آموزش ایجاد برنامه چت دوطرفه با استفاده از Socket در سی شارپ -------- آموزش ارسال و دریافت فایل در برنامه تحت شبکه با استفاده ار سوکت (Socket) --------

ابتدای صفحه