sgaluza / Meteor.DDP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Meteor.DDP

A simple implementation of Meteor DDP integration with .NET/C#.

Runtime needs a platform that provides System.Net.WebSockets, in practice, Windows 8 and above. The only external dependencies are Newton.Json a.k.a. Json.NET for quick dynamic-json serialization and Nito.AsyncEx a.k.a Async and Task Helpers .

The code uses dynamics and C# events. Very simple usage:

NuGet package

https://www.nuget.org/packages/Meteor.DDP/

Connection

using(DdpClient client = new DdpClient("localhost:3000"))
{
   client.ConnectAsync().Wait();
   // Subscribe or publish then...
}

Subscriptions

On Meteor side:

Meteor.publish('MeteorPublished', function(){
    return SomeCollection.find({});
});

On .NET Side:

void Subscribe()
{
  client.Message += OnMessage;
  client.Subscribe(Guid.NewGuid().ToString("N"), "MeteorPublished");
}

void OnMessage(object sender, DdpMessageEventArgs e)
{
    Console.WriteLine("Message from Meteor! Item {0}::{1}:  {2}\n{3}", e.Collection, e.Id, e.Method, e.Data);
}

Publications

On Meteor side:

Meteor.methods({
    MeteorMethod: function (message){
      console.log("I'm called from .NET! The message: " + message.data);
    }
  });

On .NET side:

client.Publish(callId, "MeteorMethod", new
{
    hello = "hello",
    data = "Hello, Meteor!!!"
});

About


Languages

Language:C# 100.0%