2014-07-25 82 views
0

我要建立使用播放框架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? 我很樂意得到任何幫助。

回答

0

原來的以某種方式在第一websocket4net庫忽視的運作良好,易於使用,因此使用該庫是回答我的問題。

相關問題