2017-02-22 89 views
2

我正在使用Web Socket的单页聊天应用程序。我的问题是:有没有一种方法可以将更多的消息传递给事件@OnMessage上的函数?像传递用户的昵称和照片一样。将超过消息传递给Web Socket @onmessage事件

我曾尝试下面的代码(添加的参数_nickname和_photo),但我跑后,我得到这个问题:

Server Tomcat v7.0 Server at localhost failed to start. 

JavaScriptHTML

function sendMessage() { 
    console.log("0000000"); 
    if (websocket != null) { 
     websocket.send(msg,_nicknname,_photo); 
    } 
    msg = ""; 
} 

web套接字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套接字服务器的侧面。

我错过了什么吗? 请帮帮我。

感谢

回答

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 = ""; 
} 
+0

@eividasKaržinauskas谢谢你的回复,但你可以请给我一个简短的例子来说明情况? – user6561572

+0

@shery我修改了你的javascript例子来说明。 –

+0

谢谢,但是我怎样才能让他们在发送邮件邮件?像:..String MyData ..? – user6561572