2013-06-20 5 views
5

मेरे पास एक कंसोल एप्लिकेशन है जो सिग्नलआर सर्वर है, मेरे पीसी पर।यह एक अलग पीसी पर सर्वर कनेक्ट करने के लिए संभव सिग्नलआर क्लाइंट वेब है?

मेरे पास एक HTML पृष्ठ है जो इंटरनेट पर सिग्नलआर क्लाइंट है। लेकिन मैं सर्वर से कनेक्ट करने का प्रयास करता हूं लेकिन मेरे पास 400 त्रुटि का बुरा अनुरोध है। यदि सर्वर नीचे है तो मेरे पास एक और प्रतिक्रिया है।

यह संभव है या सिग्नलआर क्लाइंट किसी पीसी पर सर्वर से कनेक्ट करने के लिए संभव है या नहीं?

(मेरी अंग्रेजी के लिए क्षमा करें)

मेरे पेज

<input type="text" id="msg" value=" " /> 
    <input type="button" id="send" value="send" /> 
    <ul id="message"> 
    </ul> 
    <script src="Scripts/jquery-1.6.4.min.js"></script> 
    <script src="Scripts/jquery.signalR-1.1.2.min.js"></script> 
    <script> 
     $(function() { 
      jQuery.support.cors = true; 
      // Open a connection to the remote server 
      var connection = $.hubConnection('http://MyIpAddress:8080'); 
      var chat = connection.createHubProxy('chat'); 

      chat.on('send', function (message) { 
       $('#message').append('<li>' + message + '</li>'); 
      }); 

      // Turn logging on so we can see the calls in the browser console 
      connection.logging = true; 

      connection.start().done(function() { 
       $('#send').click(function() { 
        chat.invoke('send', $('#msg').val()); 
       }); 
      }); 
     }); 
    </script> 

मेरे सर्वर कोड

using Microsoft.Owin.Hosting; 
using System; 
using System.IO; 
using System.Net; 
using System.Net.Sockets; 

//Install-Package Microsoft.Owin.Hosting -pre 
//Install-Package Microsoft.Owin.Host.HttpListener -pre 

namespace TestServer 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      LocalIPAddress(); 
      string url = "http://localhost:8080"; 

      using (WebApplication.Start<Startup>(url)) 
      { 
       Console.WriteLine("Server running on {0}", url); 
       Console.ReadLine(); 
      } 
     } 
    } 
} 

Startup.cs

using Microsoft.AspNet.SignalR; 
using Owin; 

namespace TestServer 
{ 
    public class Startup 
    { 
     // This method name is important 
     public void Configuration(IAppBuilder app) 
     { 
      var config = new HubConfiguration 
      { 
       EnableCrossDomain = true 
      }; 

      app.MapHubs(config); 
     } 
    } 
} 

Chat.cs

+०१२३५१६४१०
using Microsoft.AspNet.SignalR; 
using System; 
using System.Threading.Tasks; 

namespace TestServer.Hubs 
{ 
    public class Chat : Hub 
    { 
     public override Task OnConnected() 
     { 
      Console.WriteLine("OnConnected " + Context.ConnectionId); 
      return base.OnConnected(); 
     } 

     public void Send(string message) 
     { 
      Console.WriteLine(string.Format("Receive: {0} by {1} ", message, Context.ConnectionId)); 
      Clients.All.send(message); 
     }  
    } 
} 
+1

हमेशा अपना कोड दिखाएं। आपके द्वारा किए गए "क्या" किए गए विचारों पर विचार करने के लिए प्रश्न का उत्तर देना मुश्किल है। – davidfowl

+0

उनके दस्तावेज़ सुझाव देते हैं कि आप 'jQuery.support.cors = true' का उपयोग न करें। http://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#configureconnection (लिंक को आपको पृष्ठ पर कहां से स्थानांतरित करने की आवश्यकता है) – Jon

उत्तर

9
अपने जे एस-initialisation में पहली पंक्ति के रूप में इस के बारे में

क्या:

$ .connection.hub.url = "अपने URL";

+0

जितना आसान हो! बहुत बहुत धन्यवाद। –

+0

'$ .connection.hub.url = 'http: // localhost: 1234/सिग्नलर'; 'मुझे"/सिग्नलर "जोड़ना पड़ा, और यह पूरी तरह से काम करता है। धन्यवाद! – KoalaBear

1

मैं सिर्फ यह एक ही मुद्दा था और हालांकि यह कुछ समय के बाद से सवाल प्रकाशित किया गया था किया गया है कि यह कैसे मैं इसे हल है:

string url = "http://localhost:8080"; 
:

मैं से सर्वर कोड में url बदल दिया

रहे हैं:

string url = "http://*:8080"; 

या:

string url = "http://+:8080"; 

इसने बाध्य दायरा बदल दिया लेकिन मेरे लिए यह कुछ मुद्दों को हल किया।

संबंधित मुद्दे