我有一个Android应用程序,它需要在许多视图上通过服务器实时更新数据,因此我选择了Web套接字,而不是Rest api或推送通知。
但是我想知道如何在客户端和服务器之间构造请求和响应消息以及如何与服务器通信,例如android应用程序具有许多需要服务器实时数据的视图。
那么我们整个应用程序应该只有1个套接字连接,并列出一个字符串命令列表,在其中可以根据这些命令解析数据吗?
或者我们应该为每个视图制作套接字api,因为这会给服务器带来一些负担,因为单个应用程序将通过与服务器的多个线程套接字连接进行连接。
因此,如果我们在整个应用程序中使用一个套接字,则在接收数据时,事情会像这样从android的客户端进行:
pseudo code:
public class GenericSocketResponse
{
public String command;
public String data;
}
public void receieMessage(GenericSocketResponse genericSocketResponse)
{
if(genericSocketResponse.command.equals("chat_message"))
{
MessageResponse mr= (MessageResponse )ParseJson (genericSocketResponse.data);
}
else if(genericSocketResponse.command.equals("counter_data"))
{
CounterDataResponse cdr= (CounterDataResponse )ParseJson (genericSocketResponse.data);
}
else if ()
.......
}
与向服务器发送命令的概念相同。
这种做法可以接受吗?还是我应该只为每个视图建立自己的套接字连接?