Saya memiliki aplikasi web satu halaman yang dikembangkan menggunakan ASP.NET. Saya baru-baru ini mengubah banyak metode web menjadi berbasis push, menggunakan pustaka SignalR . Ini benar-benar mempercepat halaman secara signifikan dan mengurangi banyak panggilan server dari halaman.
Pada saat yang sama, saya juga telah melihat RESTful ASP.NET WebAPI untuk beberapa metode sisi server, dengan keindahan nyata yang memungkinkan untuk membuat API untuk aplikasi eksternal pada saat yang sama saya mengembangkan aplikasi inti (yang penting untuk apa yang saya lakukan).
Tampaknya Namun, setelah melihat beberapa artikel dan ini dua pertanyaan, yang mendorong dan WebAPI metode tampak seperti dua paradigma yang sama sekali berbeda untuk komunikasi client-server. Saya yakin bahwa saya dapat membuat berbagai metode yang dapat diakses melalui salah satu protokol, tetapi saya tidak yakin apakah ada kendala untuk ini atau jika ini dianggap ceroboh - mungkin ada cara yang lebih elegan untuk mencapai apa yang saya tuju untuk.
Pasti ada situasi di mana saya ingin RESTful WebAPI menyiarkan acara melalui hub SignalR ... Kebalikannya (SignalR pernah perlu mengakses WebAPI) tampaknya kurang mungkin, tetapi saya kira masih memungkinkan.
Apakah ada yang melakukan ini? Adakah yang punya saran atau tip tentang cara melanjutkan? Apa cara termaju paling elegan di sini?
sumber
Jawaban:
Lihat video dari postingan blog ini . Ini menjelaskan dengan tepat bagaimana Anda dapat menggunakan WebAPI dengan SignalR.
Intinya, integrasi API Web + SignalR terdiri dari kelas ini :
Itu saja. :)
sumber
SignalR sebenarnya sudah dimasukkan ke dalam sumber WebAPI vNext (4.1).
Jika Anda tidak menggunakan build RTM, tetapi mengambil build dari Codeplex, Anda akan melihat ada proyek baru di sana yang disebut
System.Web.Http.SignalR
yang dapat Anda manfaatkan. Itu ditambahkan beberapa hari yang lalu dengan komit ini - http://aspnetwebstack.codeplex.com/SourceControl/changeset/7605afebb159Contoh penggunaan (seperti yang disebutkan dalam komit):
Jika Anda tidak ingin beralih ke vNext untuk saat ini, Anda selalu dapat menggunakan kode itu sebagai referensi.
Implementasi ini sangat mirip (sedikit lebih dipoles, termasuk tes, dll.) Dengan apa yang ditunjukkan Brad Wilson di NDC Oslo - http://vimeo.com/43603472
sumber
Berikut adalah video yang menunjukkan integrasi dari dua teknologi http://channel9.msdn.com/Events/TechDays/Belgium-2013/25 dan di sini ada paket NuGet untuk integrasi https://www.nuget.org/ paket / Microsoft.AspNet.WebApi.SignalR /
sumber
IHubConnectionContext
, yang digantikan olehIHubConnectionContext<T>
. Jawaban yang diterima adalah cara untuk pergi.