ホームページ > バックエンド開発 > PHPチュートリアル > JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?

JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?

WBOY
リリース: 2016-08-18 09:16:18
オリジナル
2102 人が閲覧しました

Didiタクシーや美団クラウドソーシングのような、こんなプロジェクトをやりたいです

JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?

実際には、市内配達です。新しいテイクアウトの注文があると、リアルタイムで注文の近くの配達スタッフにプッシュされ、配達スタッフは注文を受け取ってから注文を配達します。

とても単純なことのように思えますが、私にとってはweb开发どこから始めればよいのかわかりません。最初に考えたのは:

APP与服务器WebSocket直连,实时将地理位置经纬度上传给服务器,服务器使用内存数据库将位置保存下来(redis/mongodb)を配達員の携帯電話に送信し、一定周期で継続的に新規注文を検出し、新規注文の近くに配達員がいるかどうかを常に計算し、配達員がいる場合は対応する配達員にプッシュします。

アイデアは非常にシンプルですが、いくつか問題があります:

  1. 配達員はどのようにして位置を取得し、リアルタイムでサーバーに送信しますか? 配達員は常に自転車で走り回っています。 ajax一样了,我想用WebSocket

  2. サーバーは配達員の位置情報を保存するためにメモリデータを使用しますか?しかし、次回確認するときにどのように確認できますか?

    redis支持地理位置索引

  3. これは大量のデータを生成しますか?
  4. 内存数据库

  5. ここでどのような知識が必要なのかはわかりませんが、次のテクノロジーがあるはずです。
1: nosql、インメモリ データベース
2: リアルタイム通信、マルチプロセス、マルチスレッド、同時実行性

3: キュータイミング プログラムCLI、バックグラウンド常駐サービス
4: 空間インデックス、空間計算、地理的位置インデックス計算nosql,内存数据库
2: 实时通信,多进程,多线程,并发
3: 队列定时程序CLI,后台常驻服务
4: 空间索引,空间计算,地理位置索引计算
5: Socket编程Socket通信,Socket推送,H5 Socket
6: APP开发,但是我用web H5Socket能不能行呢,配送人员不一定要用APP吧,只要WebSocket稳定就行了(再弱弱的问一句,ajax5: ソケットプログラミングソケット通信、ソケットプッシュ、H5ソケット

6: APP開発ですが、私はweb H5Socket は機能しますか? WebSocket が安定している限り、配達担当者は APP を使用する必要はありません (もう一度、弱々しく質問します) 、ajax は機能しますか?)

経験豊富なマスターが私にアドバイスをくれて、諦めろとは言わないでください。でも、あなたが私に教えてくれれば、少なくとも私はそれらを一つずつ勉強します。知識が必要です。


補足写真(Hummingbirdクラウドソーシング/ダダ配信): JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?

皆さんありがとう^_^

返信内容:

Didiタクシーや美団クラウドソーシングのような、こんなプロジェクトをやりたいです

JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?

実際には、市内配達です。新しいテイクアウトの注文があると、リアルタイムで注文の近くの配達スタッフにプッシュされ、配達スタッフは注文を受け取ってから注文を配達します。

web开发とても単純なことのように思えますが、私にとっては

どこから始めればよいのかわかりません。最初に考えたのは次のことでした。

APP与服务器WebSocket直连,实时将地理位置经纬度上传给服务器,服务器使用内存数据库将位置保存下来(redis/mongodb)を配達員の携帯電話に送信し、一定周期で継続的に新規注文を検出し、新規注文の近くに配達員がいるかどうかを常に計算し、配達員がいる場合は対応する配達員にプッシュします。

アイデアは非常にシンプルですが、いくつか問題があります:

  1. 配達員はどのようにして位置を取得し、リアルタイムでサーバーに送信しますか? 配達員は常に自転車で走り回っています。 ajax一样了,我想用WebSocket

  2. サーバーは配達員の位置情報を保存するためにメモリデータを使用しますか?しかし、次回確認するときにどのように確認できますか?

    redis支持地理位置索引

  3. これにより大量のデータが生成されますか?

ここでどのような知識が必要なのかはわかりませんが、次のテクノロジーがあるはずです。
1: nosql、インメモリ データベース nosql,内存数据库
2: 实时通信,多进程,多线程,并发
3: 队列定时程序CLI,后台常驻服务
4: 空间索引,空间计算,地理位置索引计算
5: Socket编程Socket通信,Socket推送,H5 Socket
6: APP开发,但是我用web H5Socket能不能行呢,配送人员不一定要用APP吧,只要WebSocket稳定就行了(再弱弱的问一句,ajax2: リアルタイム通信、マルチプロセス、マルチスレッド、同時実行性

3: キュータイミング プログラムCLI、バックグラウンド常駐サービス

4: 空間インデックス、空間計算、地理的位置インデックス計算

5: ソケットプログラミングソケット通信、ソケットプッシュ、H5ソケット

6: APP開発ですが、私はweb H5Socket は機能しますか? WebSocket が安定している限り、配達担当者は APP を使用する必要はありません (もう一度、弱々しく質問します) 、ajax は機能しますか?)
JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?経験豊富なマスターが私にアドバイスをくれて、諦めろとは言わないでください。でも、あなたが私に教えてくれれば、少なくとも私はそれらを一つずつ勉強します。知識が必要です。 JavaScript - 皆さんこんにちは、Didi Taxi に似たソフトウェアを作りたいのですが、どのような技術が必要ですか?

補足写真(Hummingbirdクラウドソーシング/ダダ配信):

皆さんありがとう^_^



まず第一に、回答するようお誘いいただきありがとうございます。
この種のプロジェクトにはサーバーとクライアント
クライアント

が含まれます。クライアントが H5 を使用する場合、組み込み WebSocket の代わりにソケット.io を使用することをお勧めします。前者には多くの解決策があり、切断と再接続が可能です。フロントエンドには多くのロジックはなく、定期的に座標を取得し、人々が地図上を移動している間にサーバーにアクセスするだけです。
  1. サーバー

  2. ウェブサーバー

socket.io サーバー

Web サーバーの言語は制限されていません。Web サーバーは複雑な計算を使用しないことに注意してください。Web サーバーはデータベース データを表示することのみを担当します。

メッセージキューや位置計算など、大量の計算を必要とし、バックグラウンドに配置する必要があるバックグラウンド プログラムが多数あります。


実際、実装するのに複雑なことは何もありません。

まず長い接続を確立します (長い接続が確立できる限り、どのようなネットワーク テクノロジでも、どのようなネットワーク フレームワークでもかまいません)。地理的位置 (地図 API に基づいて取得) を送信するようにクライアントに通知し、サーバーは注文を行った顧客の地理的位置を比較します (地図が API を提供している場合は自分で比較できます)。 API 比較を使用し)、最も近い人々のグループを選択して、注文を発送します (一般的なプログラミング ロジック)。

その場合、注文追跡機能は最初のフェーズで実装する必要はありません(つまり、担当者の軌跡データを保存する必要はありません)。注文追跡を実装するには、位置情報が必要です。数秒ごとに送信され (これはキャッシュすることも永続化することもできます。将来の分析に必要かどうかによって異なります。キャッシュには redis または mongodb など、必要に応じて使用できます)、サーバーは位置情報を更新します。

実際に使用するテクノロジーを選択できるようになりました。現在、位置情報と位置比較は基本的にマップの API を呼び出すことで取得されます。原理を知りたい場合は、プロジェクトの完了後に自分で調べることができます。

🎜ロジックはシンプルで、最初のフェーズで使用されるテクノロジーはそれほど複雑ではありません。フィルタリングにはビッグデータなどが使用されます。あまり複雑に考えるとオーバーデザインになるため、これはタブーです。 🎜
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート