Android 上的 WebSockets 与 Android 中的 socket.io
Posted
技术标签:
【中文标题】Android 上的 WebSockets 与 Android 中的 socket.io【英文标题】:WebSockets on Android with socket.io in Android 【发布时间】:2018-04-18 12:43:22 【问题描述】:我希望通过新的基于 android 的客户端应用程序来利用我的 NodeJS+SocketIO 服务器应用程序。目前我在 Android 中为 Websockets 使用 okhttp3。但我想将 WebSockets 与 socket.io 一起使用。
有没有其他人使用 WebSocket 对 SocketIO 进行过此类库工作。所以请帮助我。
【问题讨论】:
【参考方案1】:只需将以下依赖项添加到您的 Android build.gradle
文件中:
compile('io.socket:socket.io-client:x.x.x') //replace x.x.x by 0.8.3 or newer version
exclude group: 'org.json', module: 'json'
它完美适用于 0.8.3 版本的 Node.js + Socket.io。
套接字singleton
类:
public class Socket
private static final String TAG = Socket.class.getSimpleName();
private static final String SOCKET_URI = "your_domain";
private static final String SOCKET_PATH = "/your_path";
private static final String[] TRANSPORTS =
"websocket"
;
private static io.socket.client.Socket instance;
/**
* @return socket instance
*/
public static io.socket.client.Socket getInstance()
if (instance == null)
try
final IO.Options options = new IO.Options();
options.path = SOCKET_PATH;
options.transports = TRANSPORTS;
instance = IO.socket(SOCKET_URI, options);
catch (final URISyntaxException e)
Log.e(TAG, e.toString());
return instance;
基本用法,onConnect
事件:
Socket socket = Socket.getInstance();
private Emitter.Listener onConnect = new Emitter.Listener()
@Override
public void call(final Object... args)
//Socket on connect callback
;
socket.on("connect", onConnect);
socket.connect();
欲了解更多信息,请访问开发者 Github page。
【讨论】:
你好@AlexTa,但是你有任何关于Android中带有socket.io的WebSocket的例子吗?谢谢。 @SumitPansuriya 我已经更新了我的答案,希望对您有所帮助 @SumitPansuriya 你试过这个答案吗?有用吗??我收到连接错误!以上是关于Android 上的 WebSockets 与 Android 中的 socket.io的主要内容,如果未能解决你的问题,请参考以下文章
Android 下的 Websockets 与 GCM:电池使用情况?
Elastic Beanstalk 上的 WebSockets 与 Docker
Android WebView 和 WebSockets / Paho.MQTT
使用 Native Sockets 在 Android 中实现 WebSockets
Windows 上的 nodejs 和 websockets
WebSocketChannelException: HandshakeException - Flutter 应用程序与自定义服务器上的 Laravel Websockets 使用 Cpanel 验