对于我的NodeJS服务器代码,我使用chat server code中链接的socket io android tutorial。
我正在按照上面的教程在我的android项目中使用它。
build.gradle
:
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.github.nkzawa:socket.io-client:0.3.0'
}
AndroidManifest.xml
:
...
<uses-permission android:name="android.permission.INTERNET" />
...
MainActivity.java
:
import com.github.nkzawa.socketio.client.IO;
import com.github.nkzawa.socketio.client.Socket;
public class MainActivity extends AppCompatActivity {
private Socket mSocket;
{
try {
mSocket = IO.socket("http://localhost:3000");
Log.e("CONNECTED", "SUCCESS");
} catch (URISyntaxException e) {
Log.e("ERROR", "ERROR CONNECTING");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSocket.connect();
mSocket.emit("message", "message");
}
}
当我编译它时,无论我放置IO.socket(<url>)
的URL,它总是会注销它已连接。当我加载应用程序时,它应该发出message
并发送"message"
,但我从来没有在服务器上获取它。我甚至从未在我的服务器日志中获得“用户连接”日志,我已经设置了在有东西连接到它的时候注销。
为了测试以确保我的服务器代码没有错误,我在NodeJS中创建了一个客户端项目:
client.js
:
var io = require('socket.io-client'),
socket = io.connect('http://localhost:3000');
socket.on('connect', function(){
console.log("connected")
});
当我运行它时,它和服务器都注销'已连接'。所以java代码出了问题......我无法弄明白。