从Websockets发送时,.Net不反序列化流

时间:2013-10-17 18:18:29

标签: c# javascript serialization tcp websocket

我正在PhoneGap中创建一个应用程序,我正在使用HTML5 Websockets将一些信息发送到另一台设备(阅读:向拥有该应用程序的其他用户发送数据)。用户使用ID和用户名注册。
为此,我读到我必须建立TCP / Socket连接。我曾尝试使用我曾经在学校用C#创建的旧套接字聊天。 我从应用程序这样连接到套接字:

var ws = new WebSocket("ws://127.0.0.1:7001");
 ws.onopen = function()
 {
    // Web Socket is connected, send data using send()
    ws.send("message");
 };

服务器端看起来像这样(当然不是整个代码,而是相关部分)

private NetworkStream stream;
    private IFormatter formatter = new BinaryFormatter();
    private TcpListener server;
    public TcpClient client;
    private string username { get; set; } 

private void StartServer()
    {

        int port = Convert.ToInt32(portUser);
        server = new TcpListener(IPAddress.Parse(IP), port);
        server.Start();


            client = server.AcceptTcpClient();
            stream = client.GetStream();
            username = formatter.Deserialize(stream).ToString();
     }

最后一个反序列化行写道: 输入流不是有效的二进制格式。起始内容(以字节为单位)为:47-45-54-20-2F-20-48-54-54-50-2F-31-2E-31-0D-0A-48 ...

反序列化流的任何其他方法?或者我使用完全错误的方式?

编辑:使用C#方式我曾经在聊天室中的客户端之间发送数据

        stream = client.GetStream();
        formatter.Serialize(stream, messageobj);
        stream.Flush();

0 个答案:

没有答案