8

event.data使用 JavaScript WebSocket如何传递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;
}

任何帮助,将不胜感激。

4

2 回答 2

5

如果你的服务器是 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

于 2013-10-25T12:14:51.127 回答
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));
}
于 2017-12-22T07:05:18.447 回答