2017-08-30 28 views
0
<body> 
<ul id="messages"></ul> 
<form action=""> 
    <input id="m" autocomplete="off" /><button onclick="message()">Send</button> 
</form> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
<script src="/socket.io/socket.io.js"></script> 
<script> 
var app = angular.module('groupChatApp', []); 
    app.controller('groupChatController', function($scope) { 
    var socket = io(); 
    $scope.message = function(event){ 
     event.preventDefault(); 
     var msg = document.getElementById("m").value; 
     if(msg !== ""){ 
     socket.emit('chat message',msg); 
     } 
     document.getElementById("m").value=""; 
    } 
    socket.on('chat message',function(value){ 
     console.log(value); 
     document.getElementById("messages").innerHTML += "<li>"+value+"</li>"; 
    }) 
    });  
</script> 

插座中拔出意外而采用了棱角分明

这是我的index.html页面使用socket.io

var express = require('express'); 
var app = express(); 
var http = require('http').createServer(app); 
var io = require('socket.io')(http); 
app.get('/', function(request, response) { 
    response.sendFile(__dirname + '/index.html'); 
}); 
io.on('connection',function(socket){ 
    console.log('a user connected'); 
    socket.on('chat message',function(msg){ 
     console.log('message: '+msg); 
     io.emit('display',msg); 
    }); 
    socket.on('disconnect',function(){ 
     console.log('user disconnected') 
    }) 
}); 

http.listen(3000, function() { 
    console.log("listening on 3000"); 
}); 

这是我index.js文件设计一个群聊。每次发送消息时,用户都会断开连接。与JS很好地工作,而不是角度。任何建议,为什么会这样

在此先感谢

+0

使您的消息发出事件'chatMessage'而不是'chat message',我不确定空格在套接字的发出事件名称中是否有效。 –

回答

0

$scope.message = function(event)有一个参数event和在HTML代码中你有<button onclick="message()">
将html更改为<button onclick="message(event)">,它将工作

+0

是的,你是对的 – mk12ok