我尝试安装SignalR库来创建示例聊天应用程序。我相信我已经遵循了文档中给出的所有步骤。我不确定失败的原因是什么。
创建聊天对象时失败。我正在使用VS2010,我使用VS2010软件包下载工具下载了SignalR。
是否有人对此有任何疑问?
谢谢, 萨米尔
感谢Hurricanepkt帮助我。
是的,我确实使用VS2010“添加库包”对话框通过nuget获取所有signalR。我在var chat = $ .connection.chat;
中得到了对象未定义的错误我刚刚开始工作,但它是ASP.NET Web应用程序项目。我无法使用ASP.NET网站项目。我不知道为什么。
我相信它是由于网站项目中的动态dll创建与ASP.NET Web应用程序项目中的固定dll。
你遇到过这样的问题吗?
答案 0 :(得分:4)
您的枢纽名称是什么?如果您已将其更改为"聊天"以外的其他内容然后它不会起作用。我有同样的问题,因为我改变了我的意思:
public class ChatHub : Hub
{
public void Send(string message)
{
Clients.addMessage(message);
}
}
在Javascript中:
var chat = $.connection.chat;
需要更改为
var chat = $.connection.chatHub;
答案 1 :(得分:1)
由于同样的问题,我很沮丧。 它适用于Web Project,但在Web站点中却不行。所以我检查了动态创建的脚本文件。
左:Web项目 - 右:网站(http://i.imgur.com/X1XrT.jpg)
正如您在网站上看到的那样,它并没有创建"聊天"对象,所以它说undefined。 在阅读关于动态dll创建的句子后,我将我的代码放在一个单独的.cs文件中,然后将该cs文件放在App_Code文件夹中。我尝试了bam,它有效。检查动态脚本文件:
(http://i.imgur.com/CSInO.jpg)
我对此处的技术问题了解不多,但将代码放在位于App_Code文件夹中的单独的类文件可以解决问题。 祝你有愉快的一天
答案 2 :(得分: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>
今天我遇到了同样的问题,David Fowler亲自帮助过我。
无论如何,请阅读我的博客文章并将其关注到T,您将拥有MVC3的工作版本。
答案 3 :(得分:0)
我怀疑我们已经遵循相同的文档/教程 - 使用ASP.net Web应用程序的signalR 1.1.3教程(.NET Framework 4的最新signalR版本 - 不支持更高版本的signalR)。
如果你像我一样,你也应该毫无问题地在web应用程序中运行signalR,然后继续为网站实现相同的功能。在我的例子中,感谢LarsHöppner,所有这些都是关于引用我的JavaScript文件的。
这些行
<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>