我正在使用使用Web Socket的单页聊天应用程序。我的问题是:有没有办法将消息传递给事件@OnMessage上的函数?比如传递用户的昵称和照片。
我已经尝试了以下代码(添加了参数_nickname和_photo),但在运行之后我遇到了问题:
Server Tomcat v7.0 Server at localhost failed to start.
JavaScript
中的 HTML
:
function sendMessage() {
console.log("0000000");
if (websocket != null) {
websocket.send(msg,_nicknname,_photo);
}
msg = "";
}
网络套接字ChatEndPoint.java
:
@OnMessage
public void deliverChatMessege(Session session, String msg ,String _nickname,String _photo) throws IOException{
try {
if (session.isOpen()) {
//deliver message
ChatUser user = chatUsers.get(session);
doNotify(user.username, msg, _nickname,_photo, null);
}
} catch (IOException e) {
session.close();
}
}
我正在考虑一种从JavaScript传递消息,昵称和照片Json的方法,但我不知道如何将它放在Web套接字服务器的一侧。
我错过了什么吗? 请帮帮我。
由于
答案 0 :(得分:2)
使用send
方法,您只能发送字符串(请参阅docs)。但是,如果使用JSON.stringify
,则可以发送JSON对象。然后在服务器中,你可以解码字符串,你将获得你的数据。
示例强>
function sendMessage() {
console.log("0000000");
if (websocket != null) {
var data = {
msg: msg,
nickname: _nickname,
photo: _photo
};
websocket.send(JSON.stringify(data));
}
msg = "";
}