0
我试图实现的是一个控制台应用程序,它能够连接到使用SignalR的网站上托管的特定集线器并向其发送消息。signalr客户端应用程序未连接到集线器
我有一个控制台应用程序试图连接到网站上的“聊天”中心。控制台将尝试连接,然后发送消息并关闭。
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枢纽正是基于聊天例如在维基https://github.com/SignalR/SignalR/wiki/
using SignalR.Hosting.AspNet;
using System.Threading.Tasks;
namespace HubSignalrTest
{
//[HubName("Hubtest")]
public class Chat : Hub , IDisconnect , IConnected
{
public void Send(string message)
{
// Call the addMessage method on all clients
Clients.addMessage(message);
}
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();
});
我尝试设置jQuery.support.cors = TRUE;省略或添加集线器名称,并且我调查了在同一台服务器上使用正确设置运行控制台应用程序(仍未连接到集线器)并且似乎不是防火墙问题。有没有人有类似的项目运气,或知道我做错了什么?我真的很想实现这个基本的沟通,以扩展SignalR带来的很多想法。
我通读了这一点,但我仍然不确定问题在哪里,阻止了我的连接。 – user685590
我在代码中看不到这个: – davidfowl
感谢您的指导,我现在在web服务器上同时具有javascript中的这两行,但连接时挂起的控制台应用只是挂起? – user685590