मैंने वेब पर समान पोस्ट देखी हैं और किसी ने भी मेरे लिए काम करने का सुझाव नहीं दिया है। मुझे वास्तव में इस बिंदु पर एक या दूसरे को डंप करने की पसंद का सामना करना पड़ रहा है।बस सिग्नलआर (एएसपीएनटी एमवीसी 4) और require.js एक साथ काम नहीं कर सकता
यह "के साथ SignalR और MVC 4 आरंभ करने संबंधी ट्यूटोरियल":
http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc-4
कहते हैं आप की जरूरत दो स्क्रिप्ट signalR काम करने के लिए शामिल हैं:
<!--Reference the SignalR library. -->
<script src="~/Scripts/jquery.signalR-1.0.1.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="~/signalr/hubs"></script>
मैं के रूप में एक नुकसान में हूँ दूसरे को बनाने के लिए, स्वत: उत्पन्न सिग्नलआर हब स्क्रिप्ट, requ.js में होती है। जब तक कि मुझे कुछ याद नहीं आ रहा है, तब तक यह स्वत: उत्पन्न स्क्रिप्ट को शामिल करने के लिए व्यवहार्य आवश्यकता नहीं है। जेएस सिंटैक्स।
: इसके बिना आप jquery.signalR-1.1.2.js की लाइन 159 पर इस त्रुटि मिलती है "जावास्क्रिप्ट रनटाइम त्रुटि: SignalR:। लोड करने में त्रुटि केन्द्रों सुनिश्चित करें कि आपका केन्द्रों संदर्भ सही है, उदाहरण के लिए"
कोड jquery.signalR में उस बिंदु पर यह क्या कर रहा है:
signalR.hub = {
start: function() {
// This will get replaced with the real hub connection start method when hubs is referenced correctly
throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.");
}
};
किसी को वास्तव में किया गया है इस स्वत: जनरेट की स्क्रिप्ट बात require.js के माध्यम से होता है?
थोड़ा और अध्ययन कर रहे थे। मुझे कुछ विवरण जोड़ने दें:
मैं इस दृष्टिकोण का उपयोग कर रहा हूं - स्केलेबल क्लाइंट साइड अनुप्रयोगों का निर्माण: (http://johndavidmathis.wordpress.com/2013/04/23/structuring-scalable-client-side-applications/) और अधिक स्केलेबल संरचना बनाने के लिए। उस श्रृंखला में दूसरा भाग "एकाधिक फाइलों और लॉजिकल फ़ोल्डर संरचना का उपयोग करने के लिए परमिट मॉड्यूल" http://johndavidmathis.wordpress.com/2013/04/23/structuring-scalable-client-side-applications/ ने मुझे एक बेहतर मैरियनेट चैट मॉड्यूल (मेरी मुख्य ऐप.जेएस फ़ाइल से अलग) में एक बेहतर फ़ाइल संरचना प्राप्त करने के लिए अपना वास्तविक सिग्नल कोड अलग कर दिया है। मुझे वास्तव में यह दृष्टिकोण पसंद है। मेरी बाकी परियोजना इस तरह स्थापित की गई है और जब कोड ढूंढने की बात आती है तो यह वाकई लाभ दिखा रहा है। मुझे लगता है कि अतिरिक्त विभाजन है जहां मैं अटक गया हूँ। उस दूसरी निर्भरता, स्वत: उत्पन्न स्क्रिप्ट को उस अलग चैट मॉड्यूल फ़ाइल में नहीं लग रहा है। मैं अभी भी इसका अध्ययन कर रहा हूं लेकिन यह इस समय मुझे इस तरह दिखता है। require.js मेरी कठपुतली एप्लिकेशन में निर्भरता हो जाता है:
require(["marionette","handlebars", "signalr", "signalr.hubs"], function (Marionette) {
window.App = new Marionette.Application();
App.addRegions({
headerRegion: "#header",
contentRegion: "#content",
footerRegion: "#footer",
});
require(["modules/main/loader", "modules/chat/loader"], function() {
App.start();
});
})
मैं एक फ़ाइल में चैट मॉड्यूल में अनुप्रयोग में आगे की राह बनाने के लिए, कि निर्भरता चैट चाहते हैं?
कुछ पसंद है?
define(dependencies,
function() {
App.module("ChatModule", function (ChatModule, App, Backbone, Marionette, $, _, "signalr.hubs", "signalr.hubs") {
// SignalR Proxy created on the fly
var chat = $.connection.chatHub;
// Start the connection
$.connection.hub.start();
//more chat code...
एक अद्यतन:
जवाब नीचे मेरी देव वातावरण में काम करता है। लेकिन जब मैं कोड को वास्तविक उत्पादन सर्वर पर प्रकाशित करता हूं तो यह काम नहीं करता है।
जब कोड वास्तविक उत्पादन सर्वर (विंडोज सर्वर एंटरप्राइज़ 2008 आर 2 पर आईआईएस 6.1) पर प्रकाशित होता है तो ब्राउज़र कंसोल एक बार फिर स्वत: उत्पन्न संदर्भ के लिए "404" दिखाता है।
विशेष रूप से, कंसोल "?" दिखाता है ".js" से पहले संदर्भ पथ में जोड़ा जा रहा है, इस तरह ...
http://mydomain.com/myapp/Scripts/application/signalr/hubs?.js ...
"?" लेने का प्रयास किया बाहर लेकिन फिर यह मेरे ऐप नाम को पथ से हटा देता है, इस तरह ...
http://mydomain.com/signalr/hubs.js।
मुझे लगता है कि मुझे क्या मिलेगा वहाँ पहले से एक है, बिना "?", की तरह ...
http://mydomain.com/myapp/Scripts/application/signalr/hubs.js
मैं बस नहीं दिखाई दे रहा है कि कैसे ऐसा करने के लिए।
अंतिम अद्यतन:
उत्पादन सर्वर के लिए पहेली का अंतिम टुकड़ा साइट की वर्चुअल निर्देशिका है। यहां अंतिम कोड है जो मेरे लिए काम करता है। आपकी मदद के लिए धन्यवाद Raciel आर:
requirejs.config({
paths: {
//core
"jquery": "jquery-1.9.1",
"signalr": "jquery.signalR-1.1.2",
"signalr.hubs": "/productionservervirtualdirectory/signalr/hubs?"
},
shim: {
"jquery": {exports: "$"},
"signalr": { deps: ["jquery"] },
"signalr.hubs": { deps: ["signalr"] }
});
//Then all you have to do is to make signalr.hubs required in your modules. Ie:
require(["signalr.hubs"], function(){
//your code here
});
क्या आपने सर्वर पर MapHubs कहा है? प्रश्न देखें: http://stackoverflow.com/questions/16235175/404signalr-hubs-for-signalr-chat-application/16242594#16242594, यह आपके द्वारा चलाए जा रहे कार्यों के विपरीत है लेकिन आपके प्रश्न का उत्तर देना चाहिए। –
हां। वह किया। कोई पाँसा नहीं। यह समस्या बहुत ही विशेष रूप से requ.js वाक्यविन्यास की कमी को दूसरी संदर्भ बनाने के लिए प्रतीत होती है - एक स्वत: उत्पन्न सिग्नलआर हब स्क्रिप्ट के लिए। मैं लोगों को वाक्यविन्यास पर विभिन्न प्रयास कर रहा हूं। मैंने उन सभी की कोशिश की है लेकिन उनमें से कोई भी मेरे लिए काम नहीं किया है। नीचे दिए गए एक ने मेरे लिए भी काम नहीं किया है। – Robert