2012-10-25 1 views
2

dans mon entreprise il y a plus de 100 véhicules. Et chaque véhicule dispose d'un appareil Windows Mobile qui est connecté à Internet via 3G.messagerie en temps réel

Ma tâche est d'écrire une application pour être en mesure de communiquer avec ces véhicules en temps réel. Côté serveur et client.

Voici la liste dont je dois faire attention.

  • Utilisation de bande passante minimale. (Socket? TCP ou UDP ???)
  • La connexion est perdante lors de vos déplacements. Les messages doivent être délivrés avec succès.

Existe-t-il une application de protocole ou de serveur adaptée à ces exigences?

Cordialement

Baro

Répondre

3

Il suffit d'utiliser HTTP, les frais généraux des en-têtes HTTP ne va pas casser la banque de la bande passante.

Les clients peuvent simplement interroger le serveur pour le dernier message. Si le dernier message a une différence d'ID supérieure à 1 par rapport au dernier message enregistré par le client, le client peut demander l'ID de message spécifique qui lui manque directement (peut être manquant dans une connexion client abandonnée, etc.). Un gestionnaire HTTP générique (ashx) ou un service Web (asmx) est vraiment tout ce dont vous avez besoin.

+0

Dois-je effectuer un sondage http? Parce que le serveur peut envoyer un message aux véhicules? – bengin

+0

@bengin - Avec HTTP vous avez une poignée d'options, interrogation longue (comet/ajax), en utilisant des sockets Web HTML5 ou des événements de serveur (EventSource). –

0

Pour ce type de scénario de communication, la communication par socket sera le meilleur choix. Pourquoi ?

1). Cela arrive en utilisant des octets bruts.

2). Il existe des options pour avoir une communication connectée et une communication sans connexion

3). .NET a une API riche pour implémenter la communication par socket.

4). S'il est utilisé conjointement avec Rx et/ou TPL (async await), il peut être manipulé de manière beaucoup plus efficace.

Utilisation minimale de la bande passante: TCP ajoute plus d'octets d'en-tête au message réel, puis UDP comme TCP est un type de socket de communication (type de) et a également une somme de contrôle interne. UDP sera le meilleur choix pour économiser de la bande passante sur 3G.

Pour la connectivité et la confirmation garantie de la livraison des messages: Je dirais que le choix est uniquement le vôtre ou votre entreprise sur quelle approche aller de l'avant. Avantage de TCP: Comme c'est la communication connectée, dès que vous perdez la connectivité à la fois l'extrémité peut connaître la déconnexion et peut refaire la connexion et est plus fiable dans la livraison du message. Avantage d'UDP: Son protocole send et forget ne garantit pas la fiabilité ou la connectivité en tant que telle, mais comme les octets envoyés sont coûteux dans votre cas, l'utilisation d'UDP sera une bonne option et utilisera un protocole de message pour mettre en œuvre la communication de bout en bout - Demander/confirmer avec le mécanisme de réponse. Ainsi, la connexion et le message reçus et envoyés peuvent être confirmés manuellement.