add websocket

This commit is contained in:
unknown
2020-10-26 12:00:51 +08:00
parent a6e8bddbc7
commit fc263810bf
28 changed files with 626 additions and 1 deletions

View File

@@ -12,6 +12,7 @@ import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.auth.IMogoAuthManager;
import com.mogo.service.cardmanager.IMogoCardManager;
import com.mogo.service.connection.IMogoSocketManager;
import com.mogo.service.connection.IMogoWebSocketManager;
import com.mogo.service.datamanager.IMogoDataManager;
import com.mogo.service.entrance.IMogoEntranceButtonController;
import com.mogo.service.eventpanel.IEventPanelProvider;
@@ -72,6 +73,11 @@ public class MogoServiceApis implements IMogoServiceApis {
return getApiInstance( IMogoSocketManager.class, MogoServicePaths.PATH_SOCKET_MANAGER );
}
@Override
public IMogoWebSocketManager getWebSocketManagerApi(Context context) {
return getApiInstance( IMogoWebSocketManager.class, MogoServicePaths.PATH_WEB_SOCKET_MANAGER );
}
@Override
public IMogoFragmentManager getFragmentManagerApi() {
return SingletonsHolder.get( IMogoFragmentManager.class );

View File

@@ -0,0 +1,63 @@
package com.mogo.service.impl.connection;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.service.connection.IMogoOnWebSocketMessageListener;
import com.mogo.service.connection.IMogoWebSocketManager;
import com.mogo.utils.logger.Logger;
import java.lang.reflect.Method;
import static com.mogo.service.MogoServicePaths.PATH_WEB_SOCKET_MANAGER;
@Route(path = PATH_WEB_SOCKET_MANAGER)
public class MogoWebSocketManager implements IMogoWebSocketManager {
private static final String TAG = "MogoWebSocketManager";
private IMogoWebSocketManager mDelegate;
@Override
public void init(Context context, String appId) {
if (mDelegate != null) {
mDelegate.init(context, appId);
}
}
@Override
public void registerOnWebSocketMessageListener(int msgType, IMogoOnWebSocketMessageListener listener) {
if (mDelegate != null) {
mDelegate.registerOnWebSocketMessageListener(msgType, listener);
}
}
@Override
public void unregisterOnWebSocketMessageListener(int msgType, IMogoOnWebSocketMessageListener listener) {
if (mDelegate != null) {
mDelegate.unregisterOnWebSocketMessageListener(msgType, listener);
}
}
@Override
public void sendMsg(Object body, IMogoOnWebSocketMessageListener listener) {
if (mDelegate != null) {
mDelegate.sendMsg(body, listener);
}
}
@Override
public void init(Context context) {
try {
Class<?> clazz = Class.forName("com.mogo.base.websocket.WebSocketManager");
Method getInstanceMethod = clazz.getMethod("getInstance", Context.class);
getInstanceMethod.setAccessible(true);
mDelegate = (IMogoWebSocketManager) getInstanceMethod.invoke(null, context);
} catch (Exception e) {
Logger.e(TAG, e, "error.");
}
if (mDelegate != null) {
mDelegate.init(context);
}
}
}