Javascript 如何通过websocket传递表单数据?(socket.io)

Javascript 如何通过websocket传递表单数据?(socket.io),javascript,jquery,html,node.js,socket.io,Javascript,Jquery,Html,Node.js,Socket.io,我想通过web套接字将此表单中的数据发送到服务器,我使用的是socket.io 实现这一点的最佳方法是什么?您需要在表单上使用如下内容: <form name="input" action=""> <input type="text" name="say" /> <input type="submit" value="send" /> </form> 然后把它传给网袋。在node.js端,您可以使用以下方法获取js对象: 你可以

我想通过web套接字将此表单中的数据发送到服务器,我使用的是socket.io

实现这一点的最佳方法是什么?

您需要在表单上使用如下内容:

<form name="input" action="">
    <input type="text" name="say" /> 
    <input type="submit" value="send" />
</form>
然后把它传给网袋。在node.js端,您可以使用以下方法获取js对象:


你可以试试这个

var querystring = require('querystring');
// Data is the data received from the client
var result = querystring.parse(data);

祝你好运:)

为什么要在这里安装websocket?这是一个客户端-服务器请求,因此正常的http请求可以工作。如果表单更改了服务器上的状态,则最好能够将这些更改发送到客户端,而不需要客户端长时间轮询服务器。:)在代码中添加一些解释,它可以在将来帮助其他人。
var querystring = require('querystring');
// Data is the data received from the client
var result = querystring.parse(data);
    function getFormData2Object(form){
    var un_array = form.serializeArray();
    var _array = {};
    $.map(un_array, function(n, i){
        if(n.name.indexOf('[') > -1 ){
            var array = n.name.match(/\[(.*?)\]/);
            var key = n.name.replace(array[1],"").replace('[',"").replace(']',"");
            if(!_array[key]){
                _array[key] = {};
            }
            _array[key][array[1]] = n['value'];
        }else{
            _array[n['name']] = n['value'];
        }
    });
    return _array;
}
socket.emit('blablabla', getFormData2Object( $("form") ) );