CNode

请问除了用socket.io提供的JS连接服务端?还有其他方式连接吗?

问答
3330216851发布于12 年前最后回复12 年前4 回复5467 浏览0 收藏

比如JAVA客户端连接,或者通过URL连接?

查看回复

回复 (4)

Z
zhs077#1·12 年前

tcp

3
330216851#2·12 年前

解决了,JAVA可以连接socket.io服务端的。

B
bnuhero#3·12 年前
引用 330216851解决了,JAVA可以连接socket.io服务端的。

@330216851 最好能把经验分享给大家,避免他人再走弯路。

3
330216851#4·12 年前

嗯,楼上说的是

Add it as a gradle dependency for Android Studio, in build.gradle:

compile 'com.github.nkzawa:socket.io-client:0.3.0' Usage

Socket.IO-client.java has almost the same api and features with the original JS client. You use IO#socket to initialize Socket:

socket = IO.socket("http://localhost"); socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {

@Override public void call(Object... args) { socket.emit("foo", "hi"); socket.disconnect(); }

}).on("event", new Emitter.Listener() {

@Override public void call(Object... args) {}

}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {

@Override public void call(Object... args) {}

}); socket.connect(); This Library uses org.json to parse and compose JSON strings:

// Sending an object JSONObject obj = new JSONObject(); obj.put("hello", "server"); obj.put("binary", new byte[42]); socket.emit("foo", obj);

// Receiving an object socket.on("foo", new Emitter.Listener() { @Override public void call(Object... args) { JSONObject obj = (JSONObject)args[0]; } }); Options are supplied as follows:

IO.Options opts = new IO.Options(); opts.forceNew = true; opts.reconnection = false;

socket = IO.socket("http://localhost", opts); You can get a callback with Ack when the server received a message:

socket.emit("foo", "woot", new Ack() { @Override public void call(Object... args) {} }); Use custom SSL settings:

// default SSLContext for all sockets IO.setDefaultSSLContext(mySSLContext);

// set as an option opts = new IO.Options(); opts.sslContext = mySSLContext; socket = IO.socket("https://localhost", opts);

参与回复
登录后即可参与回复。登录