2013-04-30 123 views
1

我已经用netHttpBinding绑定写了一个wcf服务,并且托管在II8(windows server 2012)中。接口像波纹管。如何从HTML客户端调用Websocket?

[ServiceContract(CallbackContract = typeof(IDuplexCallbackContract))] 
public interface IHelloWebSocket 
{ 
    [OperationContract(IsOneWay = true, Action = "*")] 
    void SayHelloDuplexReceive(string name); 
} 

[ServiceContract] 
public interface IDuplexCallbackContract 
{ 
    [OperationContract(IsOneWay = true, Action = "*")] 
    void SayingHelloSend(string message); 
} 

现在我有服务类实现像波纹管..

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant)] 
public class HelloWebSocket : IHelloWebSocket 
{ 
    /// <summary> 
    /// Call back instance called from service to client. 
    /// </summary> 
    IDuplexCallbackContract _callback = null; 

    public HelloWebSocket() 
    { 
     _callback = 
      OperationContext.Current.GetCallbackChannel<IDuplexCallbackContract>(); 
    } 

    public void SayHelloDuplexReceive(string name) 
    { 
     _callback.SayingHelloSend("Hello " + name + " by WebSockets"); 

     //return "Hello " + name; 
    } 
} 

和网络配置,如波纹管..

<system.serviceModel> 
    <services> 
     <service name="WebSocketUndersranding.HelloWebSocket"> 
      <endpoint address="" 
      binding="netHttpBinding" 
      contract="WebSocketUndersranding.IHelloWebSocket"/> 
    </service> 
    </services> 
    <behaviors> 
      <serviceBehaviors> 
       <behavior name=""> 
        <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
     <serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
      multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 

现在我怎么能称之为从服务HTML5客户端。

我的服务URL是一个链接

我想写客户 VAR的WebSocket =新的WebSocket(URI); 但我应该在“uri”中调用该服务。我无法获得.. ???

感谢, Arijit

+0

我已经张贴解答关于类似的话题在这里: [WCF自托管用JavaScript客户端的websocket服务] [1] [1]:http://stackoverflow.com/questions/24239953/wcf-self-hosted-websocket-service-with-javascript-client/26527058#26527058 – Amid 2014-10-23 11:32:40

回答