2017-02-22 59 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