按照本教程:https://blog.pusher.com/build-an-android-chat-app-with-pusher/,我已经调试了几个小时,以找出它无法正常工作的原因。
从客户端我执行以下操作:
private void postMessage() {
String text = messageInput.getText().toString();
// return if the text is blank
if (text.equals("")) {
return;
}
RequestParams params = new RequestParams();
// set our JSON object
params.put("text", text);
params.put("name", "DogLover69");
params.put("time", new Date().getTime());
// create our HTTP client
AsyncHttpClient client = new AsyncHttpClient();
client.post(MESSAGES_ENDPOINT, params, new JsonHttpResponseHandler(){
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
runOnUiThread(new Runnable() {
@Override
public void run() {
messageInput.setText("");
}
});
}
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
Toast.makeText(
getApplicationContext(),
"Something went wrong :(",
Toast.LENGTH_LONG
).show();
}
});
}
注意:MESSAGES_ENDPOINT是服务器的IP地址+我正在连接的端口,我已经确认它是正确的。
从服务器我执行以下操作:
var Pusher = require('pusher');
var pusher = new Pusher({
appId: "421748",
key: "4e789b8f7019463f945b",
secret: "fff93ef698f9231c00dd"
});
...
app.post('/messages', function(req, res){
var message = {
text: req.body.text,
name: req.body.name
}
console.log(message);
pusher.trigger('messages', 'new_message', message, function(err){
console.log("bananas");
done(err);
});
res.json({success: 200});
});
服务器正确打印消息并以200成功代码响应;但是,虽然服务器成功从客户端收到消息,但服务器无法将消息发送到推送器。使用推送器网站上的调试控制台确认了这一点。
这是触发错误,所以我认为这是问题所在:
pusher.trigger('messages', 'new_message', message, function(err){
console.log("bananas");
done(err);
});
Server output when I catch the error from pusher.trigger
我一直试图弄清楚很久以来的错误, 任何帮助,将不胜感激。我可能会尝试与推送人员取得联系,因为我已经虔诚地遵循了教程并且三重检查了我的所有步骤。我的特定问题没有太多资源,但我希望有这个问题的其他人可以找到这个!
由于
答案 0 :(得分:0)
代码看起来正确。您能否请仔细检查是否有与之关联的cluster
值 - 您应该可以在dashboard.pusher.com上看到它。