gpt4 book ai didi

java - 从 JavaScript 客户端到服务器的 Google Channel API 消息

转载 作者:行者123 更新时间:2023-12-01 15:08:29 25 4
gpt4 key购买 nike

过了一会儿,Google Channel API 的第一部分就开始工作了。现在我在从 JavaScript 客户端向服务器发送消息时遇到一些问题。以下是 Google Channel API 连接的 servlet:

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user != null) {
ChannelService channelService = ChannelServiceFactory.getChannelService();
String token = channelService.createChannel(user.getUserId());

FileReader reader = new FileReader("index.html");
CharBuffer buffer = CharBuffer.allocate(16384);
reader.read(buffer);
reader.close();

String index = new String(buffer.array());
index = index.replaceAll("\\{\\{ token \\}\\}", token);

resp.setContentType("text/html");
resp.getWriter().write(index);
} else {
resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
}

index.html 如下所示:

<script src="/_ah/channel/jsapi"></script>

<body>
<script type="text/javascript">
onOpened = function() {
alert("opened");
}

var token = "{{ token }}";
var channel = new goog.appengine.Channel(token);
var handler = {
'onopen' : onOpened,
'onmessage' : onMessage,
'onerror' : function() {
},
'onclose' : function() {
}
};
var socket = channel.open(handler);
socket.onopen = onOpened;
socket.onmessage = onMessage;

function sendMessage() {
// Send JSON object to server
}
</script>
<h1>Google Test Channel API</h1>
<form>
<input type="button" value="Send" onclick="sendMessage();">
</form>
</body>

如果我加载应用程序,我会收到opened警报,我相信连接正常。现在,如果有人单击该按钮,我想向服务器发送一条消息。

我读到我必须将 XMLHttpRequest 函数与 POST 或 GET 结合使用。但我不会传递新的网址,我只会传递一个值。有没有办法将 JSON 对象发送到服务器?

类似于:

{
"message": "This is a JavaClient message!"
}

最佳答案

这实际上与 Chanel API 没有太大关系 - 它只是对服务器的标准 xhr 回调。您可以使用标准代码like this ,或使用 jquery like this 等库.

如果您需要将 javascript 解析为 JSON,请使用 JSON.stringify()。

在服务器上,您可以根据需要处理您的请求,通过标准 HTTP 将响应发送回客户端,或者使用 Chanel API 不仅向原始客户端发送消息,还向所有连接的客户端发送消息。

关于java - 从 JavaScript 客户端到服务器的 Google Channel API 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12641126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com