FCM XMPP java 服务器应用程序
FCM XMPP java server app
我想在 Google AppEngine 上部署 FCM XMPP 应用程序。我正在使用这个库 https://github.com/thelong1EU/fcmxmppserver 但我是这个后端方面的新手,所以我需要一些帮助。我设法部署了它,但它没有 运行。我不知道如何让AppEngine在这里调用主要功能:
public class EntryPoint {
public static void main(String[] args) {
final String fcmProjectSenderId = senderID;
final String fcmServerKey = key;
CcsClient ccsClient = CcsClient.prepareClient(fcmProjectSenderId, fcmServerKey, false);
try {
ccsClient.connect();
} catch (XMPPException e) {
e.printStackTrace();
}
}
}
如果我 运行 仅此功能,则一切正常,但部署后无法启动。我错过了什么?
所以我发现读到这个:
当应用程序加载时,它会执行 GET 到 /_ah/stop
,所以我需要将其添加到我的 servlet 映射中。我是这样做的:
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
<servlet>
<servlet-name>Start</servlet-name>
<servlet-class>eu.long1.jwnotes.fcmserver.StartServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Start</servlet-name>
<url-pattern>/_ah/start</url-pattern>
<url-pattern>/_ah/stop</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
我在 doGet() 中这样做:
public class StartServlet extends HttpServlet {
private static final String GET_START = "/_ah/start";
private static final String GET_STOP = "/_ah/stop";
@Override
public void init() throws ServletException {
//init the servlet
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
switch (req.getRequestURI()) {
case GET_START:
//do something
resp.setStatus(SC_OK);
break;
case GET_STOP:
//do something else
break;
}
}
}
我不知道这是否是推荐的方式,但目前可以使用。如果我找到别的东西,我会 post.
我想在 Google AppEngine 上部署 FCM XMPP 应用程序。我正在使用这个库 https://github.com/thelong1EU/fcmxmppserver 但我是这个后端方面的新手,所以我需要一些帮助。我设法部署了它,但它没有 运行。我不知道如何让AppEngine在这里调用主要功能:
public class EntryPoint {
public static void main(String[] args) {
final String fcmProjectSenderId = senderID;
final String fcmServerKey = key;
CcsClient ccsClient = CcsClient.prepareClient(fcmProjectSenderId, fcmServerKey, false);
try {
ccsClient.connect();
} catch (XMPPException e) {
e.printStackTrace();
}
}
}
如果我 运行 仅此功能,则一切正常,但部署后无法启动。我错过了什么?
所以我发现读到这个:
当应用程序加载时,它会执行 GET 到 /_ah/stop
,所以我需要将其添加到我的 servlet 映射中。我是这样做的:
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
<servlet>
<servlet-name>Start</servlet-name>
<servlet-class>eu.long1.jwnotes.fcmserver.StartServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Start</servlet-name>
<url-pattern>/_ah/start</url-pattern>
<url-pattern>/_ah/stop</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
我在 doGet() 中这样做:
public class StartServlet extends HttpServlet {
private static final String GET_START = "/_ah/start";
private static final String GET_STOP = "/_ah/stop";
@Override
public void init() throws ServletException {
//init the servlet
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
switch (req.getRequestURI()) {
case GET_START:
//do something
resp.setStatus(SC_OK);
break;
case GET_STOP:
//do something else
break;
}
}
}
我不知道这是否是推荐的方式,但目前可以使用。如果我找到别的东西,我会 post.