gpt4 book ai didi

java - java服务器和javascript之间的通信

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:23 24 4
gpt4 key购买 nike

我有多线程聊天java服务器,它可以处理多个客户端(java)。他们可以同时互相交谈。它们通过网络套接字连接。除了他们自己的对话词之外,我的目的是通过网络应用程序显示他们在网络浏览器中所做的对话词。我正在考虑 JavaScript,但无法弄清楚如何为 Web 应用程序实现 javascript,因为我需要将对象或数据从服务器(java)端传递到 javascript 端。

以下是多线程服务器,这对于多个客户端来说工作得很好。

        public class GoodChatServer {
………
public static void main(String[] args) throws Exception {
System.out.println("The chat server is running.");
ServerSocket listener = new ServerSocket(PORT);
try {
….
}
} finally {
…..
}
}
private static class Handler extends Thread {


……….
this.socket = socket;
}

public void run() {
try {

in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
while (true) {
out.println("SUBMITNAME");
name = in.readLine();
if (name == null) {
..
}

synchronized (names) {
if (!names.contains(name)) {
names.add(name);
break;
}

最佳答案

有多种方法可以使用 JavaScript 在浏览器中显示来自 Java 服务器的聊天信息。由于您已经在 J​​ava 客户端中使用套接字,因此一种选择是使用 WebSocketsOracle provides an introduction to Java Websockets here ,这应该可以帮助您处理服务器端的事情。 Mozilla 也有 a tutorial for writing browser-based websockets here .

您可以考虑的另一个选择是通过全局实时网络(例如 PubNub)中继您的数据。 PubNub 提供 Java APIJavaScript API这将允许您使用以下代码将消息从 Java 服务器发布到 JavaScript 客户端:

<script src="http://cdn.pubnub.com/pubnub.min.js"></script>
<script>(function(){

var pubnub = PUBNUB.init({
publish_key : 'demo',
subscribe_key : 'demo'
})

pubnub.subscribe({
channel : "my_chat_channel",
message : function(m){ alert(m) }, //Display the chat message
})});</script>

在 Java 服务器上,您可以编写发布代码:

Pubnub pubnub = new Pubnub("demo", "demo");

Callback callback = new Callback() {
public void successCallback(String channel, Object response) {
System.out.println(response.toString());
}
public void errorCallback(String channel, PubnubError error) {
System.out.println(error.toString());
}
};
pubnub.publish("my_chat_channel", "Here is my amazing chat message!" , callback);

PubNub 目前为 free for up to 1 million messages per month 。祝你好运!

关于java - java服务器和javascript之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687648/

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