我开始使用 NodeJS 和 Socket.IO。我正在尝试使用 NodeJS http 服务器设置一个基本示例,并建立到服务器的 Socket.IO 连接。
我也在使用 Angular JS,基本上我想要的是,当用户按下按钮时,就会建立与服务器的连接。但是,当我尝试时,我收到此错误
GET http://localhost/socket.io/?EIO=2&transport=polling&t=1404288173776-3 net::ERR_CONNECTION_REFUSED
这是我的代码:
服务器.js
var http = require('http');
var server= http.createServer(handler);
var io = require('socket.io')(server);
server.listen(8080);
function handler(req, res) {
res.writeHead(200);
res.end('Hello Http');
}
io.on('connection', function (socket){
socket.emit('news', { hello: 'world' });
console.log('connected!');
});
app.js
var app = angular.module('testApp', ['ngRoute']);
app.controller('TestCtrl', function ($scope){
$scope.msg= "";
$scope.try = function (){
$scope.msg= "ALO"
var socket = io('http://localhost');
socket.on('news', function (data) {
console.log(data);
});
};
});
在我的 test.html 文件上:
<body ng-controller="TestCtrl">
<h2>{{msg}}</h2>
<button ng-click="try()">Try</button>
<script src="../js/angular.min.js"></script>
<script src="../js/angular-route.min.js"></script>
<script src="../js/app.js"></script>
<script src="../node_modules/socket.io/node_modules/socket.io-client/socket.io.js"></script>
<!-- <script src="/socket.io/socket.io.js"></script> -->
</body>
我认为该错误可能与我在包含 socket.io.js 时使用的路径有关,我也尝试在路径中直接使用 localhost:8080 ,因为我读到它可能是一个解决方案,但那不起作用。所以,我很感谢所提供的任何帮助。谢谢!