我目前正在编写一个与Chrome扩展程序通信的Java程序.我需要实现Chrome本机消息传递协议才能进行通信.谷歌Chrome文档说:
...每条消息都使用JSON,UTF-8编码进行序列化,并以本机字节顺序的32位消息长度开头.(来源)
我试图用Java实现这个,但是当我的消息有一定的长度时我遇到了问题,即使我的实现应该是正确的.这是我目前的实施,基于早期的SO答案和问题(例如这里):
// read the message size from Chrome. This part works correctly.
public static int getInt(char[] bytes) {
return (bytes[3]<<24) & 0xff000000|
(bytes[2]<<16) & 0x00ff0000|
(bytes[1]<< 8) & 0x0000ff00|
(bytes[0]<< 0) & 0x000000ff;
}
// transform the length into the 32-bit message length.
// This part works for small numbers, but does not work for length 2269 for example.
public static String getBytes(int length) {
return String.format("%c%c%c%c",
(char) ( length & 0xFF),
(char) ((length>>8) …Run Code Online (Sandbox Code Playgroud) 我有一张Posts桌子,在不同的时间提交了很多帖子,每个帖子都有评分.对于问题的缘故,让我们说我在所有需要的详细信息Posts表本身(即contents,ratings,created_at等都是在帖子表).
我需要一种算法来根据帖子的评分和最近发布的帖子智能地对帖子进行排序.我正在使用MySQL后端,因此查询是合适的.