【问题标题】:chat application deploy聊天应用部署
【发布时间】:2012-08-22 03:28:59
【问题描述】:

我创建了一个示例聊天应用程序。在那个聊天应用程序中,我使用了 JApplet 和前端。

到目前为止,我一直在桌面上测试我的应用程序。它工作正常。现在我想在任何网络服务器上部署我的应用程序。

现在我有几个问题。目前我在聊天服务器中使用服务器套接字作为 8989。当我在桌面上测试应用程序时,我曾经单独启动服务器。

  1. 当我在 tomcat 或任何其他 Web 服务器上部署应用程序时,我必须遵循哪些步骤?客户端会监听哪个端口?
  2. 如何启动我的聊天服务器?我是套接字概念的新手。

【问题讨论】:

  • 最好将每个问题限制为一个问题。

标签: java deployment applet installation chat


【解决方案1】:

当您说您在网络服务器上托管时,我相信它是一个基于 servlet/jsp 的应用程序,它将侦听您的请求,在这种情况下,侦听器将在网络服务器默认端口 80 / 8080(被默认)。如果您想更改或检查,可以转到 TOMCAT_INSTALLATION_DIR/conf/server.xml 并检查包含 weblistener 端口号的标记,并将其更改为您喜欢的任何值。

如果不是这样,并且您有自己的线程为您打开一个套接字,那么您真的不需要网络服务器,您只需要一台主机,它将启动套接字侦听器(您的自定义),然后它会侦听在您配置的端口。

【讨论】:

  • 您好 Akash 感谢您的回复。目前我还没有想过要使用 JSP 和 servlet。我需要将我的小程序嵌入到 jsp 或 html 中才能加载 UI。但我的问题是如何在具有所有逻辑的网络服务器中启动我的聊天服务器。我可以使用网络服务器端口来监听客户端请求吗?请告诉我如何实施。
  • 哦,是的,您可以使用服务器套接字来监听您的请求,这就是理想的建议,但是对于这种情况,您应该使用 http 协议进行通信,您所要做的就是,制作一个对服务器的 http 请求可能是您想阅读 Rest Based call ,并使用单独的线程来发布和阅读消息,读取将是基于 pull 的。如果你想进行裸套接字通信,你可能想看看 Server Sockets。
  • 那么客户端套接字部分会保持不变吗?还是我也应该改变那部分?在服务器端,我们如何制作监听器类以通知所有记录的客户端?例如。我想向所有连接到特定端口 8080 的客户端发送消息,说明该特定用户已登录。
  • 有两种方法 1. 正常的 HTTP 通信:- 这将是无会话通信,每当用户发送消息时,它将是对 servlet 的 http 调用,对于读取,将对服务器进行迭代调用用于阅读消息。当您想要发送消息时,您只需进入数据存储区,该线程将读取该条目,网络上的大多数聊天都是这样工作的,2. 套接字方法,随着最近的发展,网络套接字已经出现,它们是与套接字非常相似,但唯一的区别是它们是使用 http comm 动态定义的
  • 哦..感谢您提供的好信息。我不知道将消息条目存储到数据存储区的概念。感谢您提出这个想法。那么在这种情况下,是否可以发送所有登录的人?或者说我只想要一些特定的人。例如,如果有五个人(A、B、C、D、E)登录了聊天室。现在我只想向 B、D 发送消息。当我不使用 websocket 概念时,是否可以做这种功能?
【解决方案2】:

据我所知,您将独立的应用程序用作服务器,您可以在其中处理与特定端口的连接。

我认为有一些混乱需要澄清。

最基本的问题是:
为什么需要在网络服务器上运行聊天服务器?

在执行任何后续步骤之前,您应该清楚这一点。
因为 web 服务器基本上是用来处理 HTTP/S 请求的,而这不是你的情况,据我所知。因为您可能正在运行套接字 TCP/UDP 通信。

对于网络服务器,您的客户端小程序实现可能会受益。如果它被引用到一个简单的 html 页面(部署在战争中),它可以简单地通过 Web 浏览器中的 url 调用重新分发给客户端。

也许我更喜欢使用 HTTP + JSON 通信,您可以从 Web 服务器的使用中受益(也可以在服务器端使用),并且除了标准端口之外不需要任何其他端口。

不确定回答您的问题是否仍然有意义,因为它可能与您无关,但让我们看看。

回答您的问题:

  • 基本上,您需要战争档案(而不是 jar 文件),因为这是 Web 服务器接受的文件。创建后(您需要遵循正确的文件夹/文件结构),您的应用就可以部署到 Web 服务器。

客户端会监听哪个端口?基本上服务器是这里的监听器 => 这里没有客户端端口监听。

  • 这取决于您的通信实施决策。如果仍然坚持使用 TCP/UDP 之一,我认为 Web 服务器在这里没有用处。

【讨论】:

  • 该特定的独立应用程序将被世界各地的不同人使用。所以我想把它放在某个地方。目前,我使用 JApplet 制作了该聊天应用程序。现在,我将把这个小程序嵌入到任何 jsp 或 html 中。这是我的要求。为了实现这些步骤,我想到了使用任何网络服务器来托管我的应用程序。我不知道这是否正确。但即使在部署之后,我也不知道如何监听我的聊天服务器端口,它监听所有客户端请求。这些是我的疑惑。
猜你喜欢
  • 2022-01-07
  • 1970-01-01
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
相关资源
最近更新 更多