none
c# webSocketServer RRS feed

  • 问题

  • 我使用想让jsweb客户端使用websocket 链接到服务端,现在每次握手都可以成功但是,不知道如何解析websocket发送的消息。
    2014年11月3日 14:24

答案

  • 你好:

    你应该首先了解一下WebSocket协议,知道协议之后在C#语言的服务器端建立TcpListener监听端口,接收到连接请求之后将字节读取出来解析为字符串,然后根据协议来解析字符串里面的内容。参考以下的文章:

    WebSocket API简介

    Writing a WebSocket server in C#

    第二篇文章里面提供了完整的示例代码。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月4日 2:50
    版主

全部回复

  • 你好:

    你应该首先了解一下WebSocket协议,知道协议之后在C#语言的服务器端建立TcpListener监听端口,接收到连接请求之后将字节读取出来解析为字符串,然后根据协议来解析字符串里面的内容。参考以下的文章:

    WebSocket API简介

    Writing a WebSocket server in C#

    第二篇文章里面提供了完整的示例代码。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月4日 2:50
    版主
  • 谢谢之前提供的链接,我了解了大概的传输协议,并完成了普通的消息处理。

    但是 websocket 传输大数据的时候 TcpClient.Available 每次最大只有 8192。但是标识位却是 129,最高位是1,标志数据传输完成。 我的websocket 传输的数据不止8219。这是个bug?

    我也设置了client.ReceiveBufferSize = 600000; 但似乎还是不能达到 600000。会丢失一大部分。

    貌似我都设置不了再次监听。一个tcplistener 只能接入一个client。如果我有多个client,需要多个 listener?

    多个listener 监听一个端口?


    2014年11月6日 1:51
  • 你好:

    接收的buffer size理论上应该没有限制,MSDN文档上没有标识:

    http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.receivebuffersize.aspx

    默认的大小是8192,但是如果设置太大的话有可能会有出问题的。

    我猜测websocket发送数据的buffer size也是8192,所以你每次接收到的最大值都是8192。你应该查一下文档或者通过代码验证一下。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月7日 1:58
    版主