我正在 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();