Comments (31)
The tutorial in the README works perfectly fine in Android.
from socket.io-client-java.
This is my node.js server. the socket works on web but not android using the example android code in README.
I see a line outputted from Eclipse, but the android code never hits socket.emit("foo", "hi"). It also doesn't throw an exception:
I/IO(6424): new io instance for http://myexamplesite:80/
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = 80;
io.on('connection', function (socket) {
console.log("new connection");
...
This is my Android code:
void runSocket() {
try {
final com.github.nkzawa.socketio.client.Socket socket = IO.socket("http://myexamplesite:80");
socket.on(com.github.nkzawa.socketio.client.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(com.github.nkzawa.socketio.client.Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
}
});
socket.connect();
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
from socket.io-client-java.
Post all of your Node.js Code. Because it looks right now you are not telling your http server to listen at a port.
Simply adding server.listen(port); might solve your problems.
from socket.io-client-java.
Thanks so much for helping, I run server on aws, 3000 or most ports are blocked. It was impossible to know this cuz calling URL would just time out and no return message or indications, until I tried to use some other technology and didn't work as well and found the answer somewhere.
from socket.io-client-java.
So u had to actually unblock 3000 or whichever port u are using
from socket.io-client-java.
Hi,
I'm having a similar issue on Android. I have the same code as above.
I call socket.connect() but none of the Listeners is called.
How can I set a server to listen to a specific port?
Thanks.
from socket.io-client-java.
Call listen(80)
from socket.io-client-java.
@ynkm169: I looked at socket and it has no listen method. Under what class can I find it?
from socket.io-client-java.
It is a server method not a socket method
from socket.io-client-java.
Socket.io server class
from socket.io-client-java.
@ynkm169: Thanks for the prompt reply.
Not sure what I'm missing but I can't find the Server class you're talking about.
from socket.io-client-java.
http://socket.io/docs/server-api/
from socket.io-client-java.
I'm actually building an Android client and I can't find the Server class anywhere in the Java library.
from socket.io-client-java.
I have the same exact problem. The listeners are not called. I even set the port in options:
IO.Options opts = new IO.Options();
opts.port = 3000;
socket = IO.socket("http://localhost", opts);
Because my server runs on port 3000. But socket does not connect at all.
from socket.io-client-java.
You can't use both url string and opts.port
at the same time.
Just set url like IO.socket("http://localhost:3000")
;
from socket.io-client-java.
@nkzawa that was what I tried at first with no luck :) I will post the code later to show you guys, maybe I'm doing something wrong.
from socket.io-client-java.
Hi. This is my Android code:
private Socket socket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
socket = IO.socket("http://localhost:3000");
} catch (URISyntaxException e) {
e.printStackTrace();
}
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.d("MainActivity: ", "socket connected");
socket.emit("message", "hi");
socket.disconnect();
}
}).on("message", new Emitter.Listener() {
@Override
public void call(Object... args) {
JSONObject obj = (JSONObject) args[0];
Log.d("MainActivity: ", "message back: "+obj.toString());
}
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {}
});
socket.connect();
setContentView(R.layout.activity_chat);
}
And this is my server code:
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('../..')(server);
var port = process.env.PORT || 3000;
server.listen(port, function () {
console.log('Server listening at port %d', port);
});
app.use(express.static(__dirname + '/public'));
io.on('connection', function (socket) {
socket.on('message', function (data) {
console.log(data);
socket.broadcast.emit('message', {
username: socket.username,
message: data
});
});
});
Am I doing something wrong? @nkzawa
from socket.io-client-java.
@dannyroa I fixed it by changing "http://localhost:3000" to "http://192.168.1.10:3000".
from socket.io-client-java.
@loolooii ah, yes, you have to use an IP or an actual server url. Are all your problems solved?
from socket.io-client-java.
@nkzawa Yeah, thanks! Another question: is it possible to send images? I know that latest version of socket.io supports that, but also with this library?
from socket.io-client-java.
@loolooii yes, you can send byte array in the same manner as the JS client like the following:
socket.emit("event1", new byte[100]);
JSONObject obj = new JSONObject();
obj.put("binary", new byte[100]);
socket.emit("event2", obj);
from socket.io-client-java.
can anyone please post a simple example snippets for receiving messages from an emit or broadcast?
thanks in advanced.
from socket.io-client-java.
try {
socket = IO.socket("http://192.168.1.10:3000");
} catch (URISyntaxException e) {
e.printStackTrace();
}
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.d("ActivityName: ", "socket connected");
// emit anything you want here to the server
socket.emit("login", some);
//socket.disconnect();
}
// this is the emit from the server
}).on("someFunction", new Emitter.Listener() {
@Override
public void call(Object... args) {
// this argas[0] can have any type you send from the server
JSONArray obj = (JSONArray) args[0];
// runOnUiThread is needed if you want to change something in the UI thread
runOnUiThread(new Runnable() {
public void run() {
// do something
}
});
}
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.d("ActivityName: ", "socket disconnected");
}
});
socket.connect();
This is basically everything you need @jc70417
from socket.io-client-java.
This is the working Socket IO client code which we have running in our browser.
$('#subscribe').on('click', function(){
socket.get('/user', function(response){
console.log(response);
});
});
This is the equivalent Java client code (Android) we wrote.
final Socket socket = IO.socket("http://192.168.0.65:1337/user");
socket.on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.d(LOG_TAG,"Connection error");
((Exception)args[0]).printStackTrace();
}
});
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.d(LOG_TAG, "Connected!!!!!");
}
});
socket.connect();
But when we run the android app, we are getting EVENT_CONNECT_ERROR
, with the following stack trace:
Connection error
W/System.err﹕ com.github.nkzawa.engineio.client.EngineIOException: server error
W/System.err﹕ at com.github.nkzawa.engineio.client.Socket.onPacket(Socket.java:479)
W/System.err﹕ at com.github.nkzawa.engineio.client.Socket.access$800(Socket.java:29)
W/System.err﹕ at com.github.nkzawa.engineio.client.Socket$5.call(Socket.java:285)
W/System.err﹕ at com.github.nkzawa.emitter.Emitter.emit(Emitter.java:117)
W/System.err﹕ at com.github.nkzawa.engineio.client.Transport.onPacket(Transport.java:121)
W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling.access$700(Polling.java:15)
W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling$2.call(Polling.java:122)
W/System.err﹕ at com.github.nkzawa.engineio.parser.Parser.decodePayload(Parser.java:198)
W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling._onData(Polling.java:130)
W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling.onData(Polling.java:99)
W/System.err﹕ at com.github.nkzawa.engineio.client.transports.PollingXHR$5$1.run(PollingXHR.java:111)
W/System.err﹕ at com.github.nkzawa.thread.EventThread$2.run(EventThread.java:75)
W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
Needless to say, our server is running and the Javascript code is giving us expected results. Can you please help us to solve this issue?
from socket.io-client-java.
socket.get('/user', function(response){
What exactly does this part mean? I think there is no api like this in socket.io.
from socket.io-client-java.
Hi,
I know this issue has been closed but I also get the same error as above. Here's what is in logcat:
D/HomeActivity﹕ object: com.github.nkzawa.engineio.client.EngineIOException: server error W/System.err﹕ com.github.nkzawa.engineio.client.EngineIOException: server error W/System.err﹕ at com.github.nkzawa.engineio.client.Socket.onPacket(Socket.java:478) W/System.err﹕ at com.github.nkzawa.engineio.client.Socket.access$800(Socket.java:29) W/System.err﹕ at com.github.nkzawa.engineio.client.Socket$5.call(Socket.java:285) W/System.err﹕ at com.github.nkzawa.emitter.Emitter.emit(Emitter.java:117) W/System.err﹕ at com.github.nkzawa.engineio.client.Transport.onPacket(Transport.java:121) W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling.access$700(Polling.java:15) W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling$2.call(Polling.java:122) W/System.err﹕ at com.github.nkzawa.engineio.parser.Parser.decodePayload(Parser.java:198) W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling._onData(Polling.java:130) W/System.err﹕ at com.github.nkzawa.engineio.client.transports.Polling.onData(Polling.java:99) W/System.err﹕ at com.github.nkzawa.engineio.client.transports.PollingXHR$5$1.run(PollingXHR.java:111) W/System.err﹕ at com.github.nkzawa.thread.EventThread$2.run(EventThread.java:75) W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
The error is thrown as EVENT_CONNECT_ERROR
Here's my socket initialization:
socket = IO.socket(SERVER + "/?token=" + token);
from socket.io-client-java.
when calling the connect() method, i get this:
12-09 12:51:53.210: I/dalvikvm(18408): Could not find method org.java_websocket.client.WebSocketClient., referenced from method com.github.nkzawa.engineio.client.transports.WebSocket$1.
I attached the JAR file from java_websocket, so not sure whats up with this. anybody have this?
from socket.io-client-java.
In case anybody is interested, OkHttp now supports Web Sockets.
from socket.io-client-java.
I try to replace java-websocket with OkHttp's websocket. It seems works well on my socket.io project.
socketio/engine.io-client-java#14
It seems that some tests have error, please give me some advices.
Thanks.
from socket.io-client-java.
i want to connect socket by query options.i have multiple field.but connection got error and the message is "SERVER ERROR" below is my code.
IO.Options opts = new IO.Options();
opts.forceNew = isNew;
opts.reconnection = isRecon;
String query = "";
try {
String role = data.getString(Constants.USER_ROLE);
if (role != null && !role.equals(""))
query += "&" + Constants.USER_ROLE + "=" + role;
if (!data.isNull(Constants.REGION_ID)) {
String regid = data.getString(Constants.REGION_ID);
if (regid != null && !regid.equals(""))
query += "&" + Constants.REGION_ID + "=" + regid;
}
if (!data.isNull(Constants.LOGED_PASSWORD)) {
String pass = data.getString(Constants.LOGED_PASSWORD);
if (pass != null && !pass.equals(""))
query += "&" + Constants.LOGED_PASSWORD + "=" + pass;
}
if (!data.isNull(Socketio.NEW_USERS_NAME)) {
String nameValue = data.getString(Socketio.NEW_USERS_NAME);
if (!nameValue.isEmpty())
query += "&" + Socketio.NEW_USERS_NAME + "=" + nameValue;
}
if (!data.isNull(Constants.DEVICE_TOCKEN_KEY)) {
String deviceToken = data.getString(Constants.DEVICE_TOCKEN_KEY);
if (!deviceToken.isEmpty())
query += "&" + Constants.DEVICE_TOCKEN_KEY + "=" + deviceToken;
}
if (!data.isNull(Socketio.USER_ID)) {
String userID = data.getString(Socketio.USER_ID);
if (!userID.isEmpty())
query += "&" + Socketio.USER_ID + "=" + userID;
}
if (!data.isNull(Constants.LOCATION)) {
String userLocation = data.getString(Constants.LOCATION);
if (!userLocation.isEmpty())
query += "&" + Constants.LOCATION + "=" + userLocation;
}
query += "&" + Constants.VERSION + "=" + Constants.VERSION_NAME;
query += "&" + Constants.PROVIDER + "=" + Constants.PROVIDER_VALUE;
opts.query = query;
} catch (Exception e) {
e.printStackTrace();
}
socket = IO.socket(Constants.SERVER_URL, options);
socket.on(Socketio.USER_ID, new Emitter.Listener() {@
Override
public void call(Object...args) {
Object obj = args[0];
}
}).on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@
Override
public void call(Object...args) {
Object obj = args[0];
socket.disconnect();
}
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@
Override
public void call(Object...args) {
Object obj = args[0];
}
}).on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener() {
@
Override
public void call(Object...args) {
Object obj = args[0];
}
}).on(Socket.EVENT_CONNECT_TIMEOUT, new Emitter.Listener() {
@
Override
public void call(Object...args) {
Object obj = args[0];
}
});
if (!isConnected()) {
isConnecting = true;
isDisconnect = false;
//socket.connect(iocallback);
socket.connect();
}
Anybody please help me in query options case
from socket.io-client-java.
Where i can find jar for socket.io?
from socket.io-client-java.
Related Issues (20)
- socket.io client sometimes sends arrays wrong HOT 5
- can i use multiple socket connection ?
- Android 13 not available HOT 1
- It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible HOT 3
- sendBuffer should be accessible
- Getting EVENT_CONNECT_ERROR from Android to Node HOT 1
- Change/update auth or query or extraheaders containing token after connection HOT 1
- Is this project Still Alive? HOT 3
- How to listen to Manager events? (Socket events are working) HOT 2
- Straightforward logging option for Android
- testDecodeError function in Helpers.java error message clean up HOT 2
- Report: ConcurrentModificationException when use AckWithTimout... HOT 2
- Connection state recovery HOT 1
- NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference HOT 1
- Unable to emit JSON object instead it is emitting Stringified Json in Client Version - 1.0.2 HOT 2
- Implement Connection State Recovery
- it throws java.lang.ClassCastException when sending nested json data. HOT 1
- in the this one the depencies are not dwonloading for me
- Android 14 not compatible with version 2.1.0
- received disconnect event. and socket closed.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from socket.io-client-java.