使用C#客户端而不是Javascript连接到Websocket服务器

时间:2013-03-14 13:11:13

标签: c# websocket

我在我的客户端和服务器上使用Alchemy websockets但遇到了corrupted/dropped messsages的问题。所以我正在尝试另一个服务器端实现。我使用Fleck实现了服务器,当我使用javascript发送消息时,服务器接收所有消息,解决了我之前的问题。

但是,我还需要能够从C#客户端向websocket服务器发送消息。由于Fleck在C#中没有客户端实现,我以为我会坚持使用Alchemy。我保留了客户端代码不变,所以我认为它应该像以前一样连接到服务器,但是,没有收到任何消息(尽管它们是根据调试器发送的)。

这是我的服务器端实现(Fleck):

private void OnStartWebSocketServer()
        {
            var server = new WebSocketServer("ws://localhost:11005");
            server.Start(socket =>
            {
                socket.OnOpen = () => Console.WriteLine("Open!");
                socket.OnClose = () => Console.WriteLine("Close!");
                socket.OnMessage = message => OnReceive(message);
            });
        }


    private static void OnReceive(String message)
    {
        UpdateUserLocation(message);
    }

这是我的客户端实现(Alchemy):

class WSclient
{

    WebSocketClient aClient;

    public WSclient(String host, String port)
    {


        aClient = new WebSocketClient("ws://" + host + ":" + 11005 + "/chat")
        {
            OnReceive = OnReceive,
            OnSend = OnSend,
            OnConnect = OnConnected,
            OnConnected = OnConnect,
            OnDisconnect = OnDisconnect
        };

        aClient.Connect();
    }

    ...

    public void Send(String data)
    {
        aClient.Send(data);
    }

我认为这可能与Alchemy客户端在连接字符串'/ chat'末尾需要一个频道这一事实有关。但是将其留空,或只是'/'会出错。

0 个答案:

没有答案