嗨,我正在使用一个简单的OpenFire服务器从Android设备向其他用户发送消息。我在Android系统中使用asmack jar。这是我正在使用的类:
public class XmppManager {
private static final int packetReplyTimeout = 500; // millis
private String server;
private int port;
private ConnectionConfiguration config;
private XMPPConnection connection;
private ChatManager chatManager;
private MessageListener messageListener;
public XmppManager(String server, int port) {
this.server = server;
this.port = port;
}
public void init() throws XMPPException {
System.out.println(String.format("Initializing connection to server %1$s port %2$d", server, port));
SmackConfiguration.setPacketReplyTimeout(packetReplyTimeout);
config = new ConnectionConfiguration(server, port);
config.setSASLAuthenticationEnabled(false);
config.setSecurityMode(SecurityMode.disabled);
connection = new XMPPConnection(config);
connection.connect();
System.out.println("Connected: " + connection.isConnected());
chatManager = connection.getChatManager();
messageListener = new MyMessageListener();
}
public void performLogin(String username, String password) throws XMPPException {
if (connection!=null && connection.isConnected()) {
connection.login(username, password);
}
}
public void setStatus(boolean available, String status) {
Presence.Type type = available? Type.available: Type.unavailable;
Presence presence = new Presence(type);
System.out.println("PRESENCE"+type+" "+available);
presence.setPriority(1);
presence.setStatus(status);
connection.sendPacket(presence);
}
public void destroy() {
if (connection!=null && connection.isConnected()) {
connection.disconnect();
}
}
public void sendMessage(String message, String buddyJID) throws XMPPException {
System.out.println(String.format("Sending mesage '%1$s' to user %2$s", message, buddyJID));
Chat chat = chatManager.createChat(buddyJID, messageListener);
chat.sendMessage(message);
}
public void createEntry(String user, String name) throws Exception {
System.out.println(String.format("Creating entry for buddy '%1$s' with name %2$s", user, name));
Roster roster = connection.getRoster();
roster.createEntry(user, name, null);
}
class MyMessageListener implements MessageListener {
@Override
public void processMessage(Chat chat, Message message) {
String from = message.getFrom();
String body = message.getBody();
System.out.println(String.format("Received message '%1$s' from %2$s", body, from));
}
}
}
使用的活动是
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try{
SmackAndroid.init(getApplicationContext());
}catch(Exception e)
{
e.printStackTrace();
}
new XmppMessage().execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private class XmppMessage extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
try {
XmppManager manager = new XmppManager("192.168.1.6", 5222);
manager.init();
manager.performLogin("admin", "root");
manager.setStatus(true, "I am mobile");
/* String buddyJID = "test@192.168.1.6";
String buddyName = "test";
manager.createEntry(buddyJID, buddyName);
manager.sendMessage("Hello mate", "test@192.168.1.6");
*/
boolean isRunning = true;
while (isRunning) {
Thread.sleep(50);
}
manager.destroy();
} catch (Exception e) {
e.printStackTrace();
}
return "Executed";
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Void... values) {}
}
}
连接是正确的,并且在OpenFire管理控制台上在线显示,但是当我试图向其他测试用户发送消息时,它会给我错误
01-13 17:53:12.696: W/System.err(22946): internal-server-error(500)
01-13 17:53:12.696: W/System.err(22946): at org.jivesoftware.smack.Roster.createEntry(Roster.java:303)
01-13 17:53:12.696: W/System.err(22946): at com.twis.demochat.XmppManager.createEntry(XmppManager.java:91)
01-13 17:53:12.706: W/System.err(22946): at com.twis.demochat.MainActivity$XmppMessage.doInBackground(MainActivity.java:50)
01-13 17:53:12.706: W/System.err(22946): at com.twis.demochat.MainActivity$XmppMessage.doInBackground(MainActivity.java:1)
01-13 17:53:12.706: W/System.err(22946): at android.os.AsyncTask$2.call(AsyncTask.java:264)
01-13 17:53:12.706: W/System.err(22946): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-13 17:53:12.706: W/System.err(22946): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-13 17:53:12.706: W/System.err(22946): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
01-13 17:53:12.716: W/System.err(22946): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-13 17:53:12.716: W/System.err(22946): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-13 17:53:12.716: W/System.err(22946): at java.lang.Thread.run(Thread.java:864)
我试过用smack。jar和asmack。罐子我也用了Android麦克。init()但仍然是相同的错误。请帮帮我,我是新手。
我还收到一个500错误,因为我用来登录的用户在服务器上不存在。
服务器升级到PHP5.6后,我的SilverStripe站点出现问题。我的web主机将服务器从PHP5.3升级到PHP5.6,现在每个页面上都会出现500个服务器错误。 来自SilverStripe的消息是: 很抱歉,处理您的请求时出现问题。 在服务器错误日志文件中没有错误条目。在服务器访问日志中,您可以看到500错误: 错误:[09/Mar/2016:11:12:07 0100]“GET/Sec
我试图通过ajax调用从表中获取数据。但我得到的响应是“500内部服务器错误”。 ajax调用的脚本如下所示 方法中调用。PHP如下所示 add_action('wp_ajax_nopriv_getsections','getsections');add_action('wp_ajax_getsections','getsections');
问题内容: 大家好,我在laravel和ajax中使用我的评论系统时遇到问题。实际上,它仅适用于php,但我遇到了ajax问题。 这是错误消息: 状态码:500内部服务器错误。并且错误显示:1/3 SQLSTATE [23000]:违反完整性约束:1048列’post_id’不能为null。 我正在编辑模态中的注释,我可以创建一个新注释,但是问题是使用ajax编辑它。 JS代码: 这是HTML:
我正在使用Lambda和API网关开发几个AWS无服务器应用程序。 有一次,我试图在一个应用程序上执行一个API请求(使用请求python库),该请求来自另一个应用程序中Lambda函数中运行的代码。我得到500服务器错误。从日志中可以看出,API网关后面的Lambda函数根本没有启动。我找不到任何日志可以告诉我发生了什么。 其他详情: API网关受IAM auth保护。 调用lambda有权“执
我试图通过ajax调用从表中获取数据。但我得到的响应是“500内部服务器错误” ajax调用的脚本如下 要在functions.php调用的方法如下 add_action('wp_ajax_nopriv_getsections'、'getsections');add_action(‘wp_ajax_getsections’、‘getSection’);
问题内容: 我正在尝试使用AJAX 调用功能,但无法获得适当的结果。我已经搜索了我的问题并找到了许多解决方案,但是这些解决方案对我没有用。请指导我我在做什么错。帮助将不胜感激。 干杯 程式码片段 后台代码文件中的方法 例外 问题答案: 首先,如果web方法在页面类中,而不在Web服务类中,则它应该是静态的。 其次,传输的数据实际上不是字符串,而是对象,因此将其更改为: 第三件事,“类型”用于旧版本