我正在使用Laravel构建一个应用程序,帮助用户找到服务提供商。将有2个像Uber这样的应用程序,1个用于用户,1个用于提供商。用户将发出请求,根据请求的不同,选定的提供者将收到通知。就像Uber一样。
问题是,我应该如何设计它。我的想法是:
这种方法有没有更好的解决方案?Uber是如何做到这一点的?
发布于 2015-07-09 17:13:06
我建议你应该使用给定的服务,比如PubNub (see Demos)。
这样你就可以保存你的服务器开发,还有一个Android-Example,你可以简单地在你的应用程序中使用它,如下所示:
dependencies {
....
compile 'com.pubnub:pubnub:3.7.4'
//'com.pubnub:pubnub-android-debug:3.7.+' For the debug version
}和
import com.pubnub.api.*;
import org.json.*;
Pubnub pubnub = new Pubnub("demo", "demo");
try {
pubnub.subscribe("my_channel", new Callback() {
@Override
public void connectCallback(String channel, Object message) {
pubnub.publish("my_channel", "Hello from the PubNub Java SDK", new Callback() {});
}
@Override
public void disconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : DISCONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
public void reconnectCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : RECONNECT on channel:" + channel
+ " : " + message.getClass() + " : "
+ message.toString());
}
@Override
public void successCallback(String channel, Object message) {
System.out.println("SUBSCRIBE : " + channel + " : "
+ message.getClass() + " : " + message.toString());
}
@Override
public void errorCallback(String channel, PubnubError error) {
System.out.println("SUBSCRIBE : ERROR on channel " + channel
+ " : " + error.toString());
}
}
);
} catch (PubnubException e) {
System.out.println(e.toString());
}如果你想知道优步是如何做到这一点的,可以看看教程"The PubNub Connected Car Solution Kit“。
所以我希望我能回答,Uber是如何做到这一点的,以及您如何让它变得更好:-)
发布于 2015-07-09 16:18:03
我认为一个好的解决方案是将所有业务逻辑放到一个Laravel应用程序中,该应用程序可以通过REST访问。因此,您不必更新文件两次。
“真正的”应用程序只能作为中间层工作,并使用此API。
例如,在前面,你可以设置Angular Apps。如果您使用nginx,您可以为每个域定义不同的位置。这样,所有以"api“开头的请求都会被路由到您的Laravel应用程序。其余的被路由到你的静态Angular应用程序。
{
listen 80;
server_name customer.com;
location /api{
root /var/www/api;
}
location / {
root /var/www/static/customer;
}
}
{
listen 80;
server_name internalarea.com;
location /api{
root /var/www/api;
}
location / {
root /var/www/static/restricted;
}
}如果你也用Laravel构建你的前端应用,API就会变成一个自己的URL,供前端系统使用。对于这个请求,我喜欢使用Zend\Http\Client,它非常舒服。
发布于 2015-07-09 15:51:49
如果您想为普通用户和提供商开发应用程序。
然后我会建议你开发两个独立的应用程序和一个服务器(永远不要为任何应用程序创建不同的服务器)
或者,您可以在注册时指定用户类型。
https://stackoverflow.com/questions/31261533
复制相似问题