Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open System
- open System.ServiceModel
- open System.ServiceModel.Security
- open System.Security.Cryptography.X509Certificates
- type ChatCallback = class
- new () = {}
- interface IChatCallback with
- member p.Message(who: string, text: string) =
- printfn "%s: %s" who text
- end
- let main =
- let binding = new NetTcpBinding()
- binding.Security.Mode <- SecurityMode.Message
- binding.Security.Message.ClientCredentialType <- MessageCredentialType.UserName
- let client = new ChatClient(new InstanceContext(new ChatCallback()),
- binding,
- new EndpointAddress(new Uri("net.tcp://127.0.0.1/Pochtochat/Chat"),
- EndpointIdentity.CreateDnsIdentity("localhost")))
- client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode <- X509CertificateValidationMode.None
- printfn "Login: "
- client.ClientCredentials.UserName.UserName <- Console.ReadLine()
- printfn "Password: "
- client.ClientCredentials.UserName.Password <- Console.ReadLine()
- client.Open()
- client.Login()
- printfn "Talk!\n"
- let rec say msg = do match msg with
- | null -> ()
- | str -> client.SaySomething(str)
- say (Console.ReadLine())
- say (Console.ReadLine())
- client.Logout()
- client.Close()
- printfn "\n\nPress <ENTER> to terminate client"
- let empty = Console.ReadLine()
- 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement