我想:
我理解发出消息但不确定如何发布数据。提前谢谢你
我的app.js设置如下:
//app.js config ...
var socket = io.listen(server);
socket.on('connection', function(socket) {
console.log('socket.io connected');
});
app.post('/go', function(req, res) {
socket.on('data', function(data) {
new Order({
routeFrom : data.routeFrom,
routeTo : data.routeTo,
leaving: data.leaving
}).save(function(err, docs) {
if(err) { console.log("error"); }
res.json(data);
});
socket.emit('callback', {done: 'Done'});
});
});
我的index.ejs文件:
<script src="/socket.io/socket.io.js"></script>
var socket = io.connect('http://localhost:3000');
$('#send').on('click', function() {
$.post('/go', {
socket.emit('data', {
routeFrom: $('#rf').val(),
routeTo: $('#rt').val(),
leaving: $('#l').val()
});
});
socket.on('callback', function(data) {
console.log(data);
});
});
答案 0 :(得分:13)
您根本不需要POST
。
我会在客户端做:
var socket = io.connect('http://localhost:3000');
$('#send').on('click', function(event) {
event.preventDefault();
socket.emit('data', {
routeFrom: $('#rf').val(),
routeTo: $('#rt').val(),
leaving: $('#l').val()
});
});
socket.on('callback', function(data) {
console.log(data.done);
// Print the data.data somewhere...
});
在服务器端:
//app.js config ...
var socket = io.listen(server);
socket.on('connection', function(socket) {
console.log('socket.io connected');
});
socket.on('data', function(data) {
new Order({
routeFrom : data.routeFrom,
routeTo : data.routeTo,
leaving: data.leaving
}).save(function(err, docs) {
if(err) { return console.log("error"); }
socket.emit('callback', {done: 'Done', data: data});
});
});