私は PhoneGap でアプリケーションを作成しており、HTML5 Websockets を使用して別のデバイスに情報を送信しています (読み: アプリを持っている別のユーザーにデータを送信しています)。ユーザーはIDとユーザー名で登録されます。
このために、TCP/ソケット接続を確立する必要があることを読みました。かつて学校で 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();
}
最後のデシリアライズ行の書き込み: 入力ストリームは有効なバイナリ形式ではありません。最初の内容 (バイト単位) は次のとおりです。
ストリームを逆シリアル化する他の方法はありますか? または、完全に間違った方法を使用していますか?
編集:おしゃべりでクライアント間でデータを送信するために使用したC#の方法で動作
stream = client.GetStream();
formatter.Serialize(stream, messageobj);
stream.Flush();