9

我尝试安装 SignalR 库来创建示例聊天应用程序。我相信我已遵循文档中给出的所有步骤。我不确定失败的原因是什么。

创建聊天对象时失败。我正在使用 VS2010,并使用 VS2010 软件包下载实用程序下载了 SignalR。

有人有这个问题吗?

谢谢,萨米尔


感谢 Hurricanepkt 帮助我。

是的,我确实使用 VS2010 的“添加库包”对话框通过 nuget 获得了所有 signalR。我收到对象未定义错误,在 var chat = $.connection.chat;

我刚刚让它工作,但它是 ASP.NET Web 应用程序项目。我无法使其与 ASP.NET 网站项目一起使用。我不知道为什么。

我相信这是由于网站项目中的动态 dll 创建与 ASP.NET Web 应用程序项目中的固定 dll。

你遇到过这样的问题吗?

4

4 回答 4

4

你的中心叫什么名字?如果您将其更改为“聊天”以外的其他内容,则它将无法正常工作。我遇到了同样的问题,因为我将我的更改为:

    public class ChatHub : Hub
    {
        public void Send(string message)
        {
            Clients.addMessage(message);
        }
    }

在 Javascript 中:

var chat = $.connection.chat;

需要更改为

var chat = $.connection.chatHub;
于 2012-04-30T19:24:27.100 回答
1

因为同样的问题,我很沮丧。它在 Web 项目中有效,但在网站中却不是。所以我检查了动态创建的脚本文件。

左:Web 项目 - 右:网站 左:Web 项目 - 右:网站 ( http://i.imgur.com/X1XrT.jpg )

正如您在网站上看到的,它没有创建“聊天”对象,所以它说未定义。在阅读了有关动态 dll 创建的句子后,我将代码隐藏在一个单独的 .cs 文件中,并将该 cs 文件放在 App_Code 文件夹中。我试过了,bam,它奏效了。检查动态脚本文件:

网站项目 ( http://i.imgur.com/CSInO.jpg )

我对这里的技术问题了解不多,但是将您的代码放在位于 App_Code 文件夹中的单独类文件中可以解决问题。祝您有美好的一天

于 2012-07-20T06:23:30.830 回答
0

阅读您的问题,我在 MVC3 应用程序中使用它时遇到了同样的问题。

您可以发布您的脚本参考吗?我几乎可以打赌你正在使用这样的东西,一个静态位置字符串:

"../script/signalr.min.js"

当您应该使用(或相对路径的 WebForms 等效项)时:

<!-- Used for SignalR -->
<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.signalR.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>

我今天遇到了同样的问题,大卫福勒本人帮助了我。

无论如何,请阅读我的博客文章并按照 T 进行操作,您将拥有 MVC3 的工作版本。

http://sergiotapia.com/2011/09/signalr-with-mvc3-chat-app-build-asynchronous-real-time-persistant-connection-websites/

于 2011-09-18T02:51:36.747 回答
0

好吧,我怀疑我们遵循了相同的文档/教程-使用 ASP.net Web 应用程序的 signalR 1.1.3 教程(.NET 框架 4 的最新 signalR 版本-不支持更高版本的 signalR)。

如果你像我一样,你也应该在 web 应用程序中运行 signalR 没有任何问题,然后继续为网站实现相同的功能。就我而言,这一切都是为了引用我的 JavaScript 文件,这要感谢 Lars Höppner。

这些线

<script src="/Scripts/jquery-1.6.4.min.js" ></script>
<script src="/Scripts/jquery.signalR-1.1.3.js"></script>
<script src="/signalr/hubs"></script>

应该只是

<script src="Scripts/jquery-1.6.4.min.js" ></script>
<script src="Scripts/jquery.signalR-1.1.3.js"></script>
<script src="signalr/hubs"></script>
于 2013-12-12T22:18:32.707 回答