Skip to content

Instantly share code, notes, and snippets.

@monkieboy
Created November 9, 2015 13:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monkieboy/890c68fbcfd6e082b398 to your computer and use it in GitHub Desktop.
Save monkieboy/890c68fbcfd6e082b398 to your computer and use it in GitHub Desktop.
Akka F#
namespace AkkaTypesCS
{
public class GreetCs
{
public GreetCs(string who)
{
Who = who;
}
public string Who { get; set; }
}
}
module AkkaTypes
//type Greet =
// { Who: string }
type Greet(who:string) =
member x.Who = who
open Akka.Actor
open Akka.Configuration
open System
open AkkaConsoleApplication
open AkkaTypesCS
[<EntryPoint>]
let main argv =
let config = ConfigurationFactory.ParseString(@"
akka {
actor {
provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
}
remote {
helios.tcp {
port = 0 # bound to a dynamic port assigned by the OS
hostname = localhost
}
}
}")
let greetee = Console.ReadLine();
use system = ActorSystem.Create("MyClient", config)
let greeter = system.ActorSelection("akka.tcp://MyServer@localhost:8081/user/greeter")
let msg = GreetCs(greetee)
greeter.Tell msg
Console.ReadLine() |> ignore
0
module AkkaConsoleApplication
open Akka.Actor;
open Akka.Configuration;
open System;
open AkkaTypesCS
type GreetingActor() as g =
inherit ReceiveActor()
do g.Receive<_>(fun (greet:GreetCs) -> printfn "Hello %s" greet.Who)
[<EntryPoint>]
let main argv =
let config = ConfigurationFactory.ParseString(@"
akka {
actor {
provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
}
remote {
helios.tcp {
port = 8081
hostname = localhost
}
}
}
")
let system = ActorSystem.Create("MyServer", config)
let greeter = system.ActorOf<GreetingActor> "greeter"
let name = System.Console.ReadLine()
System.Console.ReadLine() |> ignore
0 // return an integer exit code
@JonCanning
Copy link

You totally stole that from the repo!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment