我正在考虑用Java实现一个简单的Instant Messaging服务器,但我不想创建另一个协议,而是使用一个已经很简单的IM协议.但我不知道应该使用哪种协议.
我之所以想要使用现有的IM协议,是因为我希望我的"用户"能够使用他们自己的客户端,例如pidgin - 它已经提供了广泛的协议,例如XMPP,Simple ,Bonjour等 - 我不需要开发任何客户.
我看起来有点像XMPP,但是因为很多工作将该协议嵌入到新服务器中.也许还有其他协议更容易使用?
我的问题是,你们有没有任何关于协议的建议,这些协议是真正基本的并且易于在Java中使用?Pidgin支持一大堆协议,但哪些协议与我相关?
我一定错过了关于Java中泛型的东西,但为什么这不起作用?
List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
无法发送至:
method( List<Object> );
Run Code Online (Sandbox Code Playgroud)
但它不起作用?怎么会?
但如果方法是:
method( Object o )
Run Code Online (Sandbox Code Playgroud)
它可以用于:
method( new String("hello") )
Run Code Online (Sandbox Code Playgroud)
没有任何问题
q1)String确实扩展了Object,为什么不能传递给它?
List<Object>
Run Code Online (Sandbox Code Playgroud)
q2)为什么会这样
method( List<? extends Object> )
Run Code Online (Sandbox Code Playgroud)
工作?有什么不同?
对于我得到的每个servlet请求,我可能会传递10个方法,然后我需要在会话中检查一些东西并且我需要HttpSession.
我可以获得HttpSession的唯一方法是来自HttpServletRequest,对吗?
如何跟踪每个servlet请求的会话?不幸的是,我不能简单地创建一个单例(例如,SessionInformation.instance().getAttribute("name")),因为该会话将用于所有请求.
有没有办法为每个请求全局存储会话,而不必将所有方法传递给它(或它的信息)以防我需要它?
更新1:
Alohci把我推向了正确的方向.我需要一些可以:
1)管理仅在线程上全局存储变量."单线程每线程"解决方案?
2)或者servlet获取的每个线程/请求是否有唯一的id?如果是这样,什么?
让我们说我有这个顶级功能:
function log(String message) {
print(message);
}
Run Code Online (Sandbox Code Playgroud)
是否可以在Dart中覆盖此功能?
如果我们所有站点都是安全的(HTTPS),那么将securecookie上的标志设置为冗余吗?
secure如果我们的设置中只有安全网站,是否有任何设置/不设置的优缺点?
给出以下代码:
type Firstname = string
type Surname = string
const firstname: Firstname = "John";
const surname:Surname = "Smith"
function print(name: Firstname) {
console.log(name)
}
/*
* This should give a compile error
*/
print(surname);
Run Code Online (Sandbox Code Playgroud)
Surname当功能需要使用时,是否可以禁止传入Firstname?
出于某种原因,我发现很难理解从哪里访问这些信息。
在上个月的账单中,我看到我的RDS有14000小时,这很奇怪,因为一个月只有730小时,而我只有1个RDS。
所以我的问题是,在 AWS 中列出特定月份每个 RDS 实例的成本的最直接方法是什么?
分步指南将非常有帮助,因为 AWS 账单和成本报告可能是一个需要导航的丛林。
谢谢!
我目前正在为我的Java项目开发调试/错误处理工具.这是一个长镜头,但有没有办法打印出发送到方法的参数的值?
调用方法时,JVM必须存储它们.无论如何,我可以抓住那些价值观?
我的目标是只调用我自己的printArguments()方法,该方法应该以某种方式打印出参数,无论我采用何种方法.
任何人有任何想法我怎么能解决这个问题?或者也许我可以访问其他类似的信息?我希望在某个时间获得尽可能多的信息,例如变量.
任何意见将不胜感激!:)
我在Google App Engine中看到,如果应用程序闲置太久(或者创建了一个新的应用程序实例),单例类可能会死亡,而且我自己也经历过这种情况.
但这是否真的意味着任何类中的任何静态变量都可能在应用程序中过期?或GAE如何识别这个类是单身?
我们的项目包含2600个类文件,我们决定开始使用自动化测试.
我们知道我们应该已经开始这个2599类文件,但是大项目应该如何以及在哪里开始编写测试?
选择一个随机课,然后去?
知道什么是重要的?有没有好的工具可供使用?
我正在努力了解 MySQL 数据库表使用什么数据类型。
假设我们有一家图书出版公司,我们需要在 MySQL 数据库中创建一个包含所有图书和作者的数据库。我们有大约 500000 本书。一本书有一个唯一的 ISBN(例如978-3-16-148410-0)。
因此,我们有两种选择来存储我们的书籍:
id VARCHAR(24) NOT NULL自然主键列并将我们的 ISBN 存储在那里,或者id INT NOT NULL AUTO_INCREMENT,然后创建一个isbn UNIQUE VARCHAR(24)列据我了解,普遍的共识是不要用VARCHAR(n)作主键,因为进行查找和连接需要更多的存储和性能,通常这对我来说是有意义的。
但是,如果我们所有的操作都是针对 ISBN(SELECT * FROM books WHERE isbn = ?、UPDATE、DELETE等) - 为什么不使用 作为VARCHAR(24)主键?
我很难理解,如果你有一个不可变的自然键(比如一本书的 ISBN),并且 95% 的数据库操作都需要使用该字段,那么使用总是VARCHAR(24)优于代理键设计吗?
我觉得AUTO_INCREMENT INT这里有一个代理键完全没有意义。它不会带来任何好处。
或者在确定主键时我是否遗漏了一些基本的东西。