Signalr 信号器客户端应用程序未连接到集线器
我试图实现的是一个控制台应用程序,它能够连接到使用SignalR托管在网站上的特定中心,并向该中心发送消息 我有一个控制台应用程序,试图连接到网站上的“聊天”中心。控制台将尝试连接,然后发送消息并关闭Signalr 信号器客户端应用程序未连接到集线器,signalr,Signalr,我试图实现的是一个控制台应用程序,它能够连接到使用SignalR托管在网站上的特定中心,并向该中心发送消息 我有一个控制台应用程序,试图连接到网站上的“聊天”中心。控制台将尝试连接,然后发送消息并关闭 static void Main(string[] args) { var connection = new HubConnection("http://mysite:101/"); IHubProxy myHub = connection.Crea
static void Main(string[] args)
{
var connection = new HubConnection("http://mysite:101/");
IHubProxy myHub = connection.CreateProxy("Chat");
connection.Start().ContinueWith(task =>
{
if (task.IsFaulted)
{
Console.WriteLine("There was an error opening the connection:{0}", task.Exception.GetBaseException());
}
else
{
Console.WriteLine("Client Connected");
}
}).Wait();
myHub.Invoke("Send", "Console App is Online!. ").ContinueWith(task =>
{
if (task.IsFaulted)
{
Console.WriteLine("There was an error calling send: {0}", task.Exception.GetBaseException());
Console.WriteLine(task.Status.ToString());
}
else
{
Console.WriteLine("Send Complete.");
}
}).Wait();
在本地一切都很好(我想这应该是同一个应用程序域)
我的asp中心只是基于wiki中的聊天示例
Jscript与示例中的内容几乎相同
<script type="text/javascript" src="Scripts/jquery-1.7.2.js"></script>
<script type="text/javascript" src="Scripts/jquery.signalR-0.5.1.js"></script>
<script src='<%= ResolveClientUrl("~/signalr/hubs") %>'> type="text/javascript"> </script>
<script type="text/javascript">
jQuery.support.cors = true;
$(function () {
// Proxy created on the fly
var chat = $.connection.chat;
// Declare a function on the chat hub so the server can invoke it
chat.addMessage = function (message) {
$('#messages').append('<li>' + message + '</li>');
};
$("#broadcast").click(function () {
// Call the chat method on the server
chat.send($('#msg').val())
.done(function () {
console.log('Success!');
})
.fail(function (e) {
console.warn(e);
});
});
// Start the connection
$.connection.hub.start();
});
type=“text/javascript”>
jQuery.support.cors=true;
$(函数(){
//动态创建的代理
var chat=$.connection.chat;
//在聊天中心上声明一个函数,以便服务器可以调用它
chat.addMessage=功能(消息){
$(“#消息”).append(“”+消息+” ”);
};
$(“#广播”)。单击(函数(){
//在服务器上调用chat方法
chat.send($('#msg').val())
.done(函数(){
console.log('Success!');
})
.失败(功能(e){
控制台。警告(e);
});
});
//启动连接
$.connection.hub.start();
});
我尝试设置jQuery.support.cors=true;省略或添加集线器名称,我已经调查过在同一台服务器上以正确的设置运行console应用程序(仍然没有连接到集线器),并且似乎不是防火墙问题。有没有人有过类似项目的运气,或者知道我做错了什么?。我真的很想实现这一基本沟通,以扩展Signal带来的许多想法 如果您想跨域访问,请阅读此处。滚动到底部我已经阅读了这篇文章,但我仍然不确定阻止我连接的问题所在。我在您的代码中没有看到这一点:$.connection.hub.url=''$.connection.hub.start();感谢您的指导,我的javascript中有这两行代码现在都在web服务器上,但是连接时控制台应用程序挂起了?我想我现在可以工作了,在这些代码之后,我在IIS上得到了401,所以我启用了匿名身份验证和viola。是否可以在CLR数据库项目中编译此文件以用于SQL,或者这是否奇怪:(?)?。
<script type="text/javascript" src="Scripts/jquery-1.7.2.js"></script>
<script type="text/javascript" src="Scripts/jquery.signalR-0.5.1.js"></script>
<script src='<%= ResolveClientUrl("~/signalr/hubs") %>'> type="text/javascript"> </script>
<script type="text/javascript">
jQuery.support.cors = true;
$(function () {
// Proxy created on the fly
var chat = $.connection.chat;
// Declare a function on the chat hub so the server can invoke it
chat.addMessage = function (message) {
$('#messages').append('<li>' + message + '</li>');
};
$("#broadcast").click(function () {
// Call the chat method on the server
chat.send($('#msg').val())
.done(function () {
console.log('Success!');
})
.fail(function (e) {
console.warn(e);
});
});
// Start the connection
$.connection.hub.start();
});