Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Play 2服务器和C#应用程序之间建立套接字连接?_Java_C#_Sockets_Playframework - Fatal编程技术网

Java 如何在Play 2服务器和C#应用程序之间建立套接字连接?

Java 如何在Play 2服务器和C#应用程序之间建立套接字连接?,java,c#,sockets,playframework,Java,C#,Sockets,Playframework,我必须在使用Play framework 2编写的Java服务器和使用C#编写的客户端桌面应用程序之间建立连接。该系统的本质是,大量消息应该从服务器推送到客户端,因此使用套接字似乎是一种自然的方法,特别是因为Play(即WebSockets)支持套接字 然而,C#对WebSocket的支持有点缺乏。我设法使用System.Net.WebSockets.ClientWebSocket类连接到我的服务器,但是这个类的级别非常低,使用ArraySegment类型的缓冲区与WebSockets的js实现

我必须在使用Play framework 2编写的Java服务器和使用C#编写的客户端桌面应用程序之间建立连接。该系统的本质是,大量消息应该从服务器推送到客户端,因此使用套接字似乎是一种自然的方法,特别是因为Play(即WebSockets)支持套接字

然而,C#对WebSocket的支持有点缺乏。我设法使用
System.Net.WebSockets.ClientWebSocket
类连接到我的服务器,但是这个类的级别非常低,使用
ArraySegment
类型的缓冲区与WebSockets的js实现相差甚远,在这里我只能接收一个长度可变的字符串。这门课似乎是我最后的选择,以防我找不到更好的解决办法

还有炼金术Websockets图书馆,但我就是不能让它工作。我启动我的服务器,检查它是否与页面一起工作,然后启动一个控制台客户端,但它完全不做任何事情,没有响应,服务器没有注意到任何试图连接的东西。下面是我使用的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();
}
所以,我的问题是:有没有WebSocket客户端的实现,或者可能是在
ClientWebSocket
之上构建的库,我还没有找到

或者也许有某种方法可以在Play framework 2中使用简单套接字(而不是WebSocket)?
我很乐意得到任何帮助。

事实证明,最初被忽略的库工作良好,易于使用,因此使用该库就是我问题的答案