2012-02-16 30 views
7

Tôi đang ở tình trạng khó xử tuyệt vời như sử dụng html5 WebSockets hoặc signalR cho một cuộc trò chuyện, chúng tôi sẽ tích hợp vào ứng dụng MVC3 asp.net của chúng tôisignalR vs html5 WebSockets cho asp.net MVC ứng dụng chat

tình huống khó xử của tôi
1 .Tại sao phải sử dụng signalR nếu nó thực hiện longpolling?
2.Không lâu dài?
3.websockets và longpolling hoàn toàn khác nhau?
4. Chỉ IIS8 hỗ trợ websockets?
5.Tôi có thể lưu dữ liệu trò chuyện vào cơ sở dữ liệu SQL bằng cách sử dụng các webhost của Html5 không?
6.Isnt có một cách giải quyết để làm cho WebSockets làm việc trên IIS7 và các phiên bản cao hơn (i sẽ sử dụng trình duyệt chrome chỉ)
Cám ơn mang với tôi

Trả lời

10
  1. Tại sao phải sử dụng signalR nếu nó thực hiện longpolling?

    Trả lời: để bật hỗ trợ cho các trình duyệt cũ hoặc để có mức trừu tượng cao hơn về chi tiết triển khai chuyển dữ liệu. Nếu bạn chắc chắn sẽ sử dụng phiên bản chrome có hỗ trợ websockets - hãy sử dụng websockets (giải thích tốt here).

  2. Isp longpolling bad?

    Trả lời: thực sự nó không phải là tốt nhất (xem liên kết ở trên), nhưng tốt hơn không có gì cho các trình duyệt cũ.

  3. ổ cắm web và kéo dài hoàn toàn khác nhau?

    Trả lời: chúng khá khác nhau (một lần nữa, xem câu trả lời ở trên), nhưng có điểm chung cho chúng (cả hai đều yêu cầu kết nối).

  4. Chỉ IIS8 hỗ trợ websockets?

    Trả lời: nếu bạn muốn sử dụng .NET framework thuần túy - có, chỉ IIS 8 và .NET 4.5. Nhưng bạn có thể sử dụng một máy chủ websockets khác (xem cách giải quyết bên dưới).

  5. Tôi có thể lưu dữ liệu trò chuyện vào cơ sở dữ liệu SQL bằng cách sử dụng các webhost Html5 không?

    Trả lời: ổ cắm web chỉ là giao thức để gửi dữ liệu, vì vậy nghĩa là sử dụng số bạn không thể thực hiện bất kỳ hành động nào ngoại trừ truyền dữ liệu.Tuy nhiên, bạn có thể nói, có một mã thông báo sẽ được gửi đến máy chủ và có nghĩa là "lưu tất cả dữ liệu trước đó vào DB". Hoặc bạn có thể có các kịch bản phức tạp hơn dựa trên các loại thông báo khác nhau như được thực hiện trong socket.io for node.js.

  6. Isnt có một cách giải quyết để làm cho WebSockets làm việc trên IIS7 và các phiên bản cao hơn (i sẽ sử dụng trình duyệt chrome chỉ)

    trả lời - vâng, chỉ cần không sử dụng IIS, nhưng khác WebSockets thực hiện máy chủ (ví dụ Fleck - có hỗ trợ tốt cho các trình duyệt "cũ" hỗ trợ webseckets) và chạy nó cùng với IIS như một quá trình riêng biệt chẳng hạn.

6

SignalR có thể hỗ trợ WebSockets nếu IIS và hỗ trợ trình duyệt của bạn này, nếu không phải nó sử dụng longpolling. Sử dụng SignalR sẽ giúp bạn tiết kiệm rất nhiều thời gian phát minh lại bánh xe, họ đã chứng minh rằng bạn có thể tạo một trang web trò chuyện hay với nó.

+0

tốt của nó, họ hỗ trợ websockets..nhưng hầu hết các trường hợp IIS và trình duyệt doesnt dường như không phù hợp với websockets vì vậy hầu hết các trường hợp nó sẽ là longpolling ... – bhargav

+0

do đó, thay vì có bỏ phiếu dài trong hầu hết các trường hợp isnt there một cách giải quyết để làm cho các websockets hoạt động trên tất cả IIS và chrome chỉ ...? Có, tôi đã nhìn thấy webchat demo ở đây http://jabbr.net/#/rooms/Lobby – bhargav

+0

Tôi không nghĩ rằng có một cách giải quyết để làm cho websockets hoạt động. Hỗ trợ cho websockets sẽ phát triển nhanh chóng khi iis8 được phát hành. – Wim

-1

4. Chỉ IIS8 hỗ trợ websockets?

SignalR hỗ trợ IE < 8 với Json2.js. Chỉ cần có được nó với NuGet cài đặt gói json2

Hãy chắc chắn rằng bạn thêm một tham chiếu đến json2.js TRƯỚC signalR.js

+5

IIS8 dành cho máy chủ, IE8 là trình duyệt – Davy8

0

enter image description here

Hy vọng nó sẽ giải quyết tất cả các truy vấn của bạn.

Các vấn đề liên quan