私はそれが角度+ socket.io問題だと思うので、私のブラウザのコンソールでこのエラーを取得しておいてください。ノード+ AngularJs + Socket.io:ネット:: ERR_CONNECTION_REFUSED
GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=LF3gkk7 net::ERR_CONNECTION_REFUSED
Eventho私が話したアドバイスに従っ角度を変更するio
のように:
ctrl.socketIo = io();
ctrl.socketIo = io.connect();
ctrl.socketIo = io.connect('http://localhost:3001');
いずれも機能していません!
これは私の角度コントローラがどのように見えるかです:
angular.module("app")
.controller("chatController", [
'userService',
function (userService) {
var ctrl = this;
ctrl.messages = [];
ctrl.socketIo = io();
ctrl.userName = userService.name;
ctrl.submit = function() {
ctrl.socketIo.emit("chat_message", ctrl.inputMessage);
ctrl.messages.push(ctrl.inputMessage);
ctrl.inputMessage = null;
};
ctrl.socketIo.on("update_clients", function (msg) {
ctrl.messages.push(msg);
});
}]
);
私のindex.htmlパスはdirsにを指している:
<!doctype html>
<html>
<head>
//boilerplate...
</head>
<body ng-app="app">
//boilerplate...
<script src="/bower_components/socket.io-client/socket.io.js"></script>
//boilerplate...
</body>
</html>
あなたは私のディレクトリ構造のパスに見ることができるようにに正しく指していますsocket.io.js:
UPD ate
私はnetstat -a -p
を実行すると、PORT 3000が使用されているようには見えません。
アップデート2:ローカルホストに接続しようとしていた私のアプリで
つのサービス:私は今、そこにソケットを必要としないので、3000ので、私はその部分を消去し、私は取得しています:
をアップデート3バックエンドコード:
'use strict';
var express = require("express");
var app = express();
var http = require("http");
var server = http.createServer(app);
var io = require("socket.io")(http);
//use environment var PORT or 3001
var portNum = 3001;
//route handler
app.get("/", function (req, res) {
res.sendFile("./index.html", {root: "./client/"});
});
app.use(express.static('./client'));
io.on("connection", function (socket) {
socket.on("chat_message", function (msg) {
socket.broadcast.emit('update_clients', msg);
});
});
server.listen(portNum, function() {
console.log("listening on port: " + portNum);
});
ポートの不一致はありますか。あなたはポート「3000」と「3001」を使用しています。 –
@MukeshSharma、私はノード側で使用しています: 'var portNum = process.env.PORT || 3001; '私は' netstat -a -p'を呼び出すとデジタル海洋VPSも使用していますが、PORT 3000が使用されていないようです – Jeka
バックエンドがポート '3001でリッスンしているので、' Connection Refused' 'の場合、フロントエンドのアプリは「3000」に接続しようとしています。 –