Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Linq;
- using System.Reactive.Concurrency;
- using System.Threading.Tasks;
- using WampSharp.Binding;
- using WampSharp.V2;
- using WampSharp.V2.Binding;
- using WampSharp.V2.Client;
- using WampSharp.V2.Rpc;
- using WampSharp.V2.Transports;
- namespace Demo
- {
- class Program
- {
- static void Main(string[] args)
- {
- JTokenJsonBinding jsonBinding = new JTokenJsonBinding();
- WampPlayground playground = new WampPlayground(jsonBinding);
- const string realm = "realm1";
- IWampChannel calleeChannel = playground.CreateChannel(realm, jsonBinding);
- IWampChannel callerChannel = playground.CreateChannel(realm, jsonBinding);
- calleeChannel.Open();
- callerChannel.Open();
- calleeChannel.RealmProxy.Services.RegisterCallee(new Add2Service());
- IAdd2AsyncService proxy =
- callerChannel.RealmProxy.Services.GetCalleeProxy<IAdd2AsyncService>();
- var nine = proxy.Add2(4, 5);
- }
- }
- public class WampPlayground
- {
- private readonly WampHost mWampHost;
- private readonly InMemoryTransport mTransport;
- private readonly WampChannelFactory mChannelFactory;
- public WampPlayground(params IWampBinding[] binding)
- {
- mWampHost = new WampHost();
- mChannelFactory = new WampChannelFactory();
- mTransport = new InMemoryTransport(DefaultScheduler.Instance);
- Host.RegisterTransport(mTransport, new[] { new InMemoryBinding() }.Concat(binding));
- Host.Open();
- }
- public WampHost Host
- {
- get
- {
- return mWampHost;
- }
- }
- public IWampChannel CreateChannel<TMessage>(string realm, IWampTextBinding<TMessage> binding)
- {
- return mChannelFactory.CreateChannel
- (realm,
- mTransport.CreateClientConnection(binding, DefaultScheduler.Instance),
- binding);
- }
- }
- public class Add2Service : IAdd2Service
- {
- public int Add2(int x, int y)
- {
- return (x + y);
- }
- }
- public interface IAdd2AsyncService
- {
- [WampProcedure("com.example.add2")]
- Task<int> Add2(int a, int b);
- }
- public interface IAdd2Service
- {
- [WampProcedure("com.example.add2")]
- int Add2(int a, int b);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement