2013-01-17 70 views
3

當我嘗試在服務器端從客戶端調用SendNewOrderConfirmation我得到signalR - 如何調用從客戶端服務器方法 - 代碼不工作

「不確定」是不是在功能

chat.SendNewOrderConfirmation(data); 沒有人知道爲什麼會出現這種情況? 謝謝

在服務器端

public class DriverChat : Hub, IDisconnect 
{ 

    public void Start(Driver d) 
    { 
    ... 
    } 
    public void SendNewOrderConfirmation(OrderDriverData data) 
    { 
     LogFile.LogResponseTime(data.orderId, data.driverId); 
    } 
} 

在客戶端

function begin(args) { 

     try { 
      //alert('begin'); 

      chat = $.connection.driverChat; 

      chat.refresh = function() { 
       ready++; 
      }; 
      chat.disconnect = function() { 
       alert('Server has disconnected'); 
      }; 
      $.connection.hub.start(function() { 
       chat.start(args); 
       ready++; 
       // alert('signalR started'); 
      }); 
     } catch (e) { 
      alert(e.message); 
      return e.message; 
     } 
    } 
    function confirmNewOrder(data) { 
     try{ 
      alert('sending cofirmation'); 
      chat.SendNewOrderConfirmation(data); 
      alert('confirmation sent'); 
     } catch (e) { 
      alert(e); 
     } 
    }; 
} 
+0

您是否註冊了生成的中心的JavaScript? –

+0

嗨史蒂夫,我該如何註冊?你可以請貼一些代碼。由於 – Ryan

回答

7

根據您正在使用SignalR版本,答案可能是不同的。

首先,如果您是在之前的版本V1阿爾法,那麼你的代碼應該是;

chat.sendNewOrderConfirmation(data); 

注意小寫s

如果您在版本V1阿爾法或更高,那麼你的代碼應該是;

chat.server.sendNewOrderConfirmation(data); 
+0

問題,謝謝你中的小寫s解決它!謝謝!!! – Ryan

0

你必須註冊中心的JavaScript生成的文件。添加到您的網頁(或母版頁):

<script src="<%: ResolveUrl("~/signalr/hubs") %>"></script> 
+0

我這樣做,我可以從服務器接收郵件時,我把它們發送到服務器 – Ryan

相關問題