Javascript 使用node.js和socket.io发送异步信息
我有以下问题:我试图使用sockets.io模块发送AMI(asterisk.io)收集的数据,但在html文件中打印它时遇到困难。在下面的代码中,我们的想法是在数据输入时在控制台上显示它。我真的不知道该怎么做,有人能帮我吗?谢谢大家! html文件:Javascript 使用node.js和socket.io发送异步信息,javascript,node.js,sockets,Javascript,Node.js,Sockets,我有以下问题:我试图使用sockets.io模块发送AMI(asterisk.io)收集的数据,但在html文件中打印它时遇到困难。在下面的代码中,我们的想法是在数据输入时在控制台上显示它。我真的不知道该怎么做,有人能帮我吗?谢谢大家! html文件: <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); socket.on('data', functio
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('data', function(data){
console.log(data);
});
</script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('peer', function (data) {
(...)
console.log(data);
});
</script>
我的app.js文件:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var http = require('http').Server(app);
var cookieParser = require('cookie-parser');
var session = require('express-session');
var io = require('socket.io')(http);
exports.io = io;
(...)
//Execute main
http.listen(7777, function(){
console.log("Running...");
});
[编辑]
在Vaterrenaburg的帮助下,这是正确的代码:
星号
io.on('connection', function (socket) {
ami.action('SIPpeers', {}, function(data){
ami.on('eventPeerEntry', function(data){
socket.emit("peer", data);
});
});
});
html文件:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('data', function(data){
console.log(data);
});
</script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('peer', function (data) {
(...)
console.log(data);
});
</script>
var socket=io.connect('http://localhost');
socket.on('peer',函数(数据){
(...)
控制台日志(数据);
});
目前,您已将其设置为仅当客户端发出数据
事件时,服务器才会发出数据
事件。根据您的描述,我相信您希望服务器在amieventPeerEntry
事件上向客户端发出data
事件。要执行此操作,请在服务器上删除对数据
事件的订阅
io.on('connection', function(socket){
ami.on('ready', function(){
ami.action('SIPpeers', {}, function(data){
ami.on('eventPeerEntry', function(data){
io.emit('data', data);
});
});
});
});
非常感谢。你是对的!我不得不改变前端,这样它就可以接收信号了。所以我不得不在服务器代码中做一些小改动来发送数据。我很高兴我的帖子帮助你找到了解决方案!如果有一个答案可以回答你的问题,这个网站的工作方式,你会“接受”这个答案,更多信息如下:。但前提是你的问题真的得到了回答。如果没有,考虑在问题中添加更多的细节。我想就你的问题留下这个评论,但我还没有足够的声誉。