带有jquery mobile的signalR导致很多问题

Posted

技术标签:

【中文标题】带有jquery mobile的signalR导致很多问题【英文标题】:signalR with jquery mobile causing lot of problems 【发布时间】:2016-01-17 10:20:19 【问题描述】:

我是 jquery mobile 和 signalR 的新手,我正在尝试将呼叫功能添加到我的移动应用程序(主要使用 jq mobile 和 js 构建),我收到此错误

http://localhost:2286/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22callhub%22%7D%5D&_=1445088108694"

这是我的 startup.cs 的布局

public class Startup

    public void Configuration(IAppBuilder app)
    
       // app.MapSignalR<EchoConnection>("/echo");
        //app.MapSignalR();
        app.MapSignalR("/Chat", new HubConfiguration());
    

有时我也会收到此错误:

GET http://localhost:2286/6836b6171ec44d63b5d7a9aa110a5fa1/arterySignalR/ping?r…%2FApp%2Findex.html%23p-choices&browserName=Chrome+(Linux)&_=1445089928688 404 (Not Found)

点击事件在我的集线器内也不起作用。 从过去四天开始,我被困在这个 signalR 和点击能力问题之间。 点击我使用 onclick="somefunction()" 但这开始给我另一个错误说 hub.start().done 应该在发送之前调用。我也尝试更改我的中心网址,但没有帮助, 如果你们有任何想法,请出面帮助我。

<script src="Js/jquery.js"></script>
<script src="Js/jquery.signalR-2.2.0.min.js"></script>
<script src="/Chat/hubs" type="text/javascript"></script>
<script src="Js/jquery.mobile-1.4.5.js"></script>
<script type="text/javascript">
$.connection.hub.url = "http://localhost:2***7/signalr";
callHub = $.connection.callHub;
$.connection.hub.start().done(function ()                
                $(document).on('click', '#btnCallUserAudio', function () 

                            // do something.....
                        );
                  );

</script>
<body>
   <div data-role="page" id="p-page1">
        <div data-role="main" class="ui-content ui-body-cf ui-responsive">
             <button id="btnCallUserAudio" type="button" class="ui-btn ui-btn-inline wd90 callingBtns" style="" ></button>
          </div>

        <div data-role="footer" data-theme="ce">

    </div>
      <div data-role="page" id="p-page2">
        <div data-role="main" class="ui-content ui-body-cf ui-responsive">

          </div>

        <div data-role="footer" data-theme="ce">

    </div>
        .
        .
        .
        .
        many more pages


  </body>

编辑:-我在谷歌上搜索了我的问题,并尝试了此链接中提到的内容- "SignalR not always ready after start().done()?" 我添加了 setTimeOut() 和“$.connection.hub.logging = true;”但它仍然无法正常工作,在控制台中它以蓝色显示下面提到的东西 - " [12:16:32 GMT+0530(印度标准时间)] SignalR:客户端订阅了集线器“callhub”。 [12:16:32 GMT+0530(印度标准时间)] SignalR:正在与“/Chat/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22callhub%22%7D%5D”协商。 "

它在网站部分也显示了相同的内容,但它运行良好。

【问题讨论】:

【参考方案1】:

在谷歌上进行大量搜索后,我没有找到任何有用的东西,但使用“$.connection.hub.logging = true;”在我的两个项目(即 jq 移动和网站)中,我了解了我在移动和网站部分中使用的 signalR javascript 文件的版本,并且在替换后我看到我在网站部分使用的是旧版本的 signalR来自我的移动部分的 signalR 和来自网站的 signalR ...它开始运行良好。 现在我的项目运行良好,但我不知道为什么它不能使用最新版本,所以任何有关此的帮助将不胜感激。

【讨论】:

以上是关于带有jquery mobile的signalR导致很多问题的主要内容,如果未能解决你的问题,请参考以下文章

带有语义元素的jQuery Mobile

带有 phonegap 的 Jquery mobile 不适用于移动应用程序

带有jquery mobile的全宽水平按钮?

使用带有 javascript、jquery mobile 的数据库

带有木偶或卓别林的 jQuery Mobile?

Javascript 不会使用带有导航地理定位的 jQuery Mobile 加载