How to handle Errors and Connection Close using WampSharp

1.4k views Asked by At

I have been working with WampSharp, i.e the client library provided to connect with autobahn wamp websocket.

I have successfully connected with the Autobahn Wamp Websocket I created in python using a .Net client application using the following code(using WampSharp):

DefaultWampChannelFactory channelFactory = new DefaultWampChannelFactory();
channel = channelFactory.CreateChannel(serverAddress);
channel.Open();

here serverAddress is: 127.0.0.1:8000 (i.e. my websocket starts at 8000 port no. of my local machine).

I am using the pubsub mechanism for exchange of data provided by autobahn wamp websocket using following code:

public void Subscribe()
{
    ISubject<string> subscribe1 = channel.GetSubject<string>(@"simple/topicSubject1");
    IDisposable subject1 = subscribe1.Subscribe(msg => MessageRecieved(msg));
}

public void Publish()
{
    ISubject<string> subjectForPublish = channel.GetSubject<string>(@"simple/topicSubject1");
    subjectForPublish.OnNext(sd.SerializeObject(DataToPublish));
}

These all processes are done successfully. The issue I am facing is that I cannot find any handlers to handle the errors and loss of connection as we do in traditional websocket. In traditional websocket we have handlers like:

webSocket.Error += new EventHandler<SuperSocket.ClientEngine.ErrorEventArgs>(webSocket_Error);
webSocket.Closed += new EventHandler(webSocket_Closed); 

I need to achieve the above functionality using wampsharp.

Thanks in advance.

1

There are 1 answers

0
darkl On BEST ANSWER

Try this:

DefaultWampChannelFactory factory = new DefaultWampChannelFactory();
IWampChannel<JToken> channel = factory.CreateChannel("ws://localhost:9090/ws");

IWampClientConnectionMonitor monitor = channel.GetMonitor();
monitor.ConnectionError += ConnectionError;
monitor.ConnectionEstablished += ConnectionEstablished;
monitor.ConnectionLost += ConnectionLost;

await channel.OpenAsync();