市场分析
目前安卓在开发socket相关功能时,常见的方式有websocket,netty,三方IM 库,github上一些私人发的类库。
-
websocket:
优点:使用简单,输入socket地址(如:ws:xxx)即可完成连接,消息的发送与接收都有完整的回调接口,可做到多端统一。
缺点:如果安卓端选定websocket方案,就意味着后端,ios端,web端等多端都必须使用websocket来开发,具有一定的局限性。 -
netty:
优点:暂无
缺点:使用较为复杂,需要提前配置环境。
准备工作
如果没有相关socket后台环境(非websocket),可以使用如下方案启动本地socketserver:
>new Thread() {
@Override
public void run() {
try {
ServerSocket serverSocket = new ServerSocket(8080);
final Socket socket = serverSocket.accept();
//这里仅以BufferReader形式读取消息
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Log.e(TAG, "server start ");
while (true) {
String result = bufferedReader.readLine();
mServers.add(result);
Log.e(TAG, "server received -> " + result);
mHandler.sendEmptyMessage(1);
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}.start();