2012-02-16 77 views
7

我在大进退两难,使用HTML5 WebSockets的或signalR聊了一会,我们将融入我们的asp.net MVC3应用signalR VS HTML5的WebSockets的asp.net MVC聊天应用

我的困境
1 。为什么要使用signalR如果它实现长时间的?
2.Isnt longpolling不好?
3.websockets和longpolling完全不同?
4. 只有IIS8支持websockets?
5.我可以使用Html5 websockets将聊天数据保存到SQL数据库吗?
6.Isnt有一种解决方法,使WebSockets的IIS7上和更高版本的工作(我将使用Chrome浏览器只)
感谢您与我的轴承

回答

10
  1. 为什么使用signalR是否实现longpolling?

    答:让旧浏览器的支持,或有过的抽象数据传输实现细节的较高水平。如果你肯定会使用具有websockets支持的chrome版本 - 使用websockets(很好的解释here)。

  2. Isnt longpolling不好?

    答:实际上它是不是最好的(见上面的链接),但有总比没有对旧的浏览器更好。

  3. websockets和longpolling完全不同?

    答:他们是完全不同的(再次,见上面的回答),但在共同为他们水木清华(它们都需要一个连接)。

  4. 只有IIS8支持websockets?

    答案:如果你想使用纯.NET框架 - 是的,只有IIS 8和.NET 4.5。但是您可以使用其他websockets服务器(请参阅下面的解决方法)。

  5. 我能救使用HTML5 WebSockets的聊天数据到SQL数据库?

    答:是的WebSockets只送数据的协议,所以从字面上使用它你不能只是传输数据的执行任何动作。然而,你可以说,有一个令牌将被发送到服务器,并意味着“将所有以前的数据保存到数据库”。或者,您可以根据不同类型的消息制定更复杂的方案,如socket.io for node.js中的实施。

  6. 心不是有一种解决方法,使WebSockets的IIS7上和更高版本的工作(我将使用Chrome浏览器只)

    答案 - 是的,就是不使用IIS,但另一个WebSockets的服务器实现(如Fleck - 对支持webseckets的“旧”浏览器有很好的支持),并与IIS一起作为单独的进程运行。

6

SignalR可以支持IIS是否和的WebSockets您的浏览器支持这一点,如果不是它使用longpolling。 使用SignalR将为您节省大量时间,重新发明车轮,他们已经证明您可以创建一个良好的聊天网站。

+0

它的良好,他们支持websockets ..但大多数情况下,IIS和浏览器似乎不适合websockets,所以大多数情况下,它将longpolling ... – bhargav 2012-02-16 09:03:25

+0

所以,而不是在大多数情况下长时间轮询一个解决方案,使websockets在所有IIS和铬只工作...?是的,我已经在这里看到了演示网络聊天http://jabbr.net/#/rooms/Lobby – bhargav 2012-02-16 09:07:57

+0

我不认为有一种解决方法可以让websockets工作。 iis8发布时,对websockets的支持将迅速增长。 – Wim 2012-02-16 10:51:58

-1

4.只有IIS8支持WebSockets的?

SignalR支持IE < 8 Json2.js。只需用的NuGet 得到它的安装包json2

确保你添加引用json2.js前signalR.js

+5

IIS8用于服务器,IE8是浏览器 – Davy8 2012-03-01 22:16:57

0

enter image description here

希望这将解决您所有的疑问。