1

サーバーからクライアントへ、およびその逆方向に xml シリアル化されたオブジェクトを通信したいと考えています。WCFを使用してモバイルクライアント(コンパクトフレームワーク)からメソッドを呼び出すのは(おそらく)簡単ですが、サーバーがクライアント側でメソッドを呼び出す方法や、クライアントからデータをプルする他の方法はありますか?ここで確認できるように、コンパクト フレームワークではコールバック コントラクトを使用できないことはわかっています。 5-using-compact-wcf-and-netcfsvcutil-exe.aspx

もともと私はソケット プログラミングとこれを自分で開発することを考えていましたが、ここで誰かが WCF について言及しました。しかし、コールバックが必要なため、WCF は非モバイル環境でのみ機能するようです。

誰でもこれで私を助けることができますか?WCF を使用して、デスクトップ サーバーと複数のモバイル クライアントとの双方向通信を開発することは可能ですか。それとも、ソケット プログラミングを行う必要がありますか?

アドバイスやあらゆる種類の助けをありがとう!

4

2 に答える 2

1

で ctacke

ご協力ありがとうございました。以前、実際にあなたの Padran Web サーバーに出くわしました。まだ実際にチェックしていません。しかし、私は間違いなく後でそれを行います。とにかく、現時点では、ソケット ソリューションはそれほど悪くないようです。その間、複数のクライアントから「ソケットサーバー」にデータを送信するのは非常に簡単であることがわかりました。これらの接続を何とか管理できれば、データをクライアントに送り返すことができます。そして、ネットワーク経由で送信するデータまたはコマンドを処理するプロトコルの場合、何らかの種類を考え出す必要があります...そのようなプロトコルを作成するのが最も難しいと思います。そのATMについての手がかりがないからです。 ...

于 2010-05-19T22:36:22.923 に答える
0

ソケットに行っても、ルーティング、キャリア フィルタリング、NAT 変換のために少し難しいかもしれません (実際のネットワーク トポロジについては言及していません)。これが、「プッシュ」パラダイム (クライアントが実際にポーリングする Exchange のプッシュ メカニズムなど) であっても、ほとんどのモバイル アプリケーションがサーバーをポーリングする必要がある理由です。

一般的に言えば、安定した、ルーティング可能な、フィルタリングされていないネットワーク アクセスがあるローカル ワイヤレス ネットワークのようなものを使用している場合を除き、クライアントは定期的にサーバーを呼び出して、サーバーにデータがあるかどうかを確認する必要があります。存在する場合は、サーバーからデータをプルします。

編集

あなたのコメントからあなたのトポロジーについてもう少しわかったので、私はあなたをもう少し操縦することができます. 残念ながら Microsoft は、Windwos CE デバイスがサービス (WCF など) を簡単にホストできるようにしていません。理論的には、独自の WCF チャネルを構築し、実際にサービスをホストするために必要なインフラストラクチャがありますが、それは簡単な作業ではありません。かなり前に調べたところ、既存の Exchange チャネルがどのように機能するかを知っているレドモンドの誰かの助けを借りて、数か月の作業が必要であることがわかりました。

個人的には、私たちの Padarn Web サーバーを使用して REST ベースの Web サービスをホストすることを選択します。これは実行が簡単で、現在かなりの数のクライアントに対して実行してきたからです。解決策として Padarn を提案するのは少し利己的であることは理解していますが、Padarn にカスタム IHttpHandlers を実装した理由は、CE デバイスが独自のものをホストするための簡単な方法を実際に提供するものを他に見つけることができなかったからです。これは、多くの場合、解決策を提供しなければならない問題です。

他のオプションは、デバイス上で FTP サーバーをホストする独自のソケット ソリューションのようなもので、MS が提供する (忌まわしい、IMO) HTTP サーバーと ISAPI、Telnet などを使用します。それらはすべて、ハック、多くの作業、またはその両方のようです。

于 2010-05-19T20:20:37.493 に答える