こんにちは、アプリケーションで dualHttpBinding と webHttpBinding に関する 1 つの問題に直面しています。全体のシナリオはこちら
WCF サービス (3 つの異なるバインディングを持つ) を使用する dotNet および Android アプリケーションがあります。
1. basicHttpBinding - For dotNet app (Service1.svc)
2. webHttpBinding - For Android to access via Rest full service (Service2.svc)
3. dualHttpBinding - For push notification to dotNet app(PushServie.svc)
Android アプリが Servie2(AddOrderItems) のメソッドを消費するたびに、データベースに挿入され、代わりに dotNet アプリケーション (プッシュ通知) にメッセージが表示されます。このために、PushService で CallBackContract を使用しました。dotNet アプリから AddOrderItems メソッド (Servie2 内) にアクセスしようとすると (テスト目的で)、通知メッセージが表示されます。
しかし、私の問題は、私のAddOrderItemsがAndroidアプリから呼び出されているかどうか、いつ呼び出されているかをどのように知ることができるので、dotNetアプリで(CallBackContract経由で)メッセージを表示する必要があるかということです.
AddOrderItems メソッドを呼び出した後、Servie2.svc から PushServie.svc メソッド (CallBackMessagge) を呼び出そうとしましたが、まったくうまくいきませんでした。
Service2 と PushService.svc のコードは次のとおりです。
// AddOrderItems method in IService2 which is implemented in Servie2.svc
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "AddOrderItems", RequestFormat =
WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
bool AddOrderItems(RequestOrderItemData orderItemData);
PushService.svcに実装されているIPushServiceのコールバックメソッド
[OperationContract(IsOneWay = true)]
void DisplayMessage(int orderID, int tableID, string tableName);
PushService の DisplayMessage のコードは次のとおりです。
IPushNotificationCallBack Callback
{
get
{
return
OperationContext.Current.GetCallbackChannel<IPushNotificationCallBack>();
}
}
および PushService.svc のメソッド
public void DisplayMessage(int orderID, int tableID, string tableName)
{
Callback.DisplayMessage(orderID, tableID, tableName);
}
私はグーグルで検索しようとしましたが、誰もが webHttpBindin はコールバック機能をサポートしていないと言っています。
私の懸念は、AddOrderItems から DisplayMessage メソッドを呼び出したいということです。これが何らかの改造で可能になるなら、私は本当に幸せです。
必要なコードをすべて投稿したと思う限り、他に何か必要な場合はお知らせください。投稿します。
どんな助けでも大歓迎です。
よろしく、 ガネーシャ