我要建立使用播放框架2和C#編寫的客戶端桌面應用程序用Java編寫的服務器之間的連接。系統的本質是這樣的,大量的消息應該從服務器推到客戶端,所以使用套接字似乎是自然的方法,特別是因爲它們被Play(即WebSockets)支持。如何在Play 2服務器和C#應用程序之間建立套接字連接?
然而,C#支持WebSockets的是一種缺乏。我設法使用System.Net.WebSockets.ClientWebSocket
類連接到我的服務器,但是這個類是非常低級別的,使用類型爲ArraySegment<byte>
的緩衝區與WebSockets的js實現無關,我只能接收一串可變長度的字符串。這個班似乎是我的最後一招,萬一我找不到更好的解決方案。
還有鍊金的WebSockets庫,但我只是無法得到它的工作。我開始我的服務器,檢查它正在與http://www.websocket.org/echo.html頁面,然後啓動控制檯客戶端,但它絕對沒有,沒有任何反應,服務器沒有發現任何嘗試連接。下面是C#代碼,我使用它:
private static void Main()
{
var aClient = new Alchemy.WebSocketClient("ws://localhost:9000/wstest")
{
OnReceive = context => Console.WriteLine("receive"),
OnConnected = context => Console.WriteLine("connect"),
OnSend = context => Console.WriteLine("send"),
OnDisconnect = context => Console.WriteLine("dissend")
};
aClient.Connect();
aClient.Send("HI!");
Console.ReadLine();
}
所以,我的問題是:有,我還沒有找到建立在ClientWebSocket
頂部的WebSocket客戶或可能的庫任何實現?
或許有某種方式使用簡單的插座(未的WebSockets)的Play框架2? 我很樂意得到任何幫助。