【问题标题】:send socket data to specific ejs page in nodejs将套接字数据发送到nodejs中的特定ejs页面
【发布时间】:2016-02-09 17:01:12
【问题描述】:

我在节点中使用 express plus ejs 作为视图引擎。我在通过套接字发出消息时遇到问题。我的主文件名 是index.js 并且视图文件在pages/messages 里面,也就是ejs 文件。我正在使用

app.get('/messages/:id', function(req,res)          {
            res.render('pages/messages');

            });

io.sockets.on('connection', function(socket) {

  socket.on('chat message', function(msg) {       console.log(msg);    socket.emit('chat message', msg);

        });   
});

上面的代码我在 index.js 的主文件中使用,下面的代码作为前端

<script src="/socket.io/socket.io.js"></script> 
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>

 <script>   var socket = io(); 
    $(document).ready(function()
{   $('form').submit(function(e){  
 alert('1');    
e.stopPropagation();    
e.preventDefault();
        socket.emit('chat message', $('#m').val(), '');
        $('#m').val('');
        return false;   });
             socket.on('chat message', function(req, res){
        $('#messages').append($('<li>').text(res));
               });  }); 
</script>




 <ul id="messages"></ul>

      <form action="" >
          <input id="m" autocomplete="off" /><button>Send</button>
        </form> 

发出后 li 包含空数据。

【问题讨论】:

  • 请写成更易读的格式。
  • 你好阿曼我不能实际上编辑不能给我添加更多格式的权限
  • 请检查它现在可读吗?
  • 我已进一步编辑。
  • 好的,谢谢,请解决我对节点的新问题

标签: node.js sockets express ejs


【解决方案1】:

req,res 参数用于快速路由,而不用于socket events。进行以下更改并检查它是否有效:

socket.emit('chat message', $('#m').val());

socket.on('chat message', function(data){
    $('#messages').append($('<li>').text(data));
}); 

在您的后端,将其更改为应该解决回声问题:

io.sockets.on('connection', function(socket) {
     socket.on('chat message', function(msg) {             
       console.log(msg);        
       socket.broadcast.emit('chat message', msg);

     });   
   });

【讨论】:

  • 它以 li 显示数据,但它像这样重复“simmi simmi happy happy happy”
  • 我必须通过网络服务将此消息发送给与我在线的第二个用户
猜你喜欢
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 2018-06-05
  • 1970-01-01
相关资源
最近更新 更多