javascript websocket onmessage event.data

时间:2013-03-20 02:23:37

标签: javascript websocket

使用JavaScript WebSocket如何将event.data传递出onMessage函数?

var eventData = EventRequest("text");


  ..... codes .....


EventRequest = function (text)
{
   var socket = new WebSocket ('ws://localhost:8080/');
   websocket.onopen = function(evt) { onOpen(evt); };
   websocket.onmessage = function(evt) { onMessage(evt); };

function onOpen (evt)
{
   socket.send("text");
}

function onMessage (evt)
{
   alert (evt.data);
   return evt.data;
}
};

我尝试了不同的方式将evt.data传递出去,但我无法做到。我可以看到正确的evt.data数据。我无法将数据传递出onMessage函数。

我试过

function wcConnection (){
   this.dataInput = '';
}

onMessage内部,我添加了

function onMessage (evt)
{
   alert (evt.data);
   this.dataInput = evt.data;
}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

如果你的服务器是python tornado

def on_message(self, message):
        t = json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
        self.write_message(t)

在您的客户端,要检索邮件,您可以

ws.onmessage = function (evt) { 
    console.log(JSON.parse(event.data));
}

你应该在控制台中看到json

答案 1 :(得分:2)

为什么要将值返回到websocket.onmessage函数?这是你获得该值的函数。 如果要将值传递给另一个函数,只需将事件对象传递给该函数,然后使用" evt.data"访问它。

websocket.onmessage = function(evt) { responseData(evt); };
function responseData(evt) {
    /* Here is your data, Do you what you want! */
    console.log(JSON.parse(evt.data));
}