2013-01-17 1 views
3

내가signalR은 - 클라이언트에서 서버 메소드 호출하는 방법 - 코드 내가 클라이언트에서 서버 측에서 SendNewOrderConfirmation를 호출 할 때

"정의되지 않은"얻을 작동하지를 함수

에없는 line chat.SendNewOrderConfirmation(data); 왜 이런 일이 일어나는 지 아시나요? 당신은 허브의 자바 스크립트 생성 된 파일을 등록해야

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

생성 된 허브의 자바 스크립트를 등록하셨습니까? –

+0

안녕하세요, 스티브, 어떻게 등록합니까? 몇 가지 코드를 붙여주십시오. 감사합니다 – Ryan

답변

7

사용중인 SignalR 버전에 따라 답변이 다를 수 있습니다.

먼저 v1 Alpha 이전 버전을 사용하는 경우 코드가 있어야합니다.

chat.sendNewOrderConfirmation(data); 

소문자 s에 주목하십시오.

버전 v1 이상인 경우 코드가 있어야합니다.

chat.server.sendNewOrderConfirmation(data); 
+0

소문을 해결해 주셔서 감사합니다! 감사!!! – Ryan

0

클라이언트 측에서 서버 측

public class DriverChat : Hub, IDisconnect 
{ 

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

에 당신에게

감사드립니다. 귀하의 페이지 (또는 귀하의 마스터 페이지)에 추가하십시오 :

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

나는 이것을했는데, 나는 서버에서 메시지를받을 수있다, 나는 그들에게 서버에 그들을 보내고 문제가있다 – Ryan

관련 문제