Я пытаюсь создать приложение Node.js, в котором будет встроенный чат. Я использую socket.io для создания этого чата. Я попытался настроить свой сервер/клиент, но клиент, похоже, не подключается. У меня есть приложение для установки журнала, когда сокеты подключаются и отключаются, но, похоже, ничего не записывает. Я полагал, что клиент задерживается, так что я открыл DevTools Chrome, и напечатал:Клиент Socket.io не подключается к серверу
var socket = io();
странно, я начинаю видеть строку неудачных запросов, которые выглядят как:
GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=1434334401655-37 404 (Not Found)
Так что теперь я Я уверен, что это мой сервер. Вот мой код сервера:
var express = require("express");
var mongoose = require("mongoose");
var io = require("socket.io").listen(app);
// var restAPI = require("./api");
// Set up the application.
var app = express();
app.use(express.static("static"));
// Mount up the rest API
// app.use("/rest", restAPI);
// Default index route.
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
// This will maintian a transcript of the chat
var transcript = []
// This route will return the transcript data as json
app.get("/transcript", function(req, res) {
res.json(JSON.stringify(transcript));
});
// Simple socket.io for chat application
// Lets keep a reference to how many connections we have
var count = 0;
io.sockets.on("connection", function(socket) {
// Increment the number of clients
count++
// Keep a reference to the socket
var current = socket;
// Log the connection
console.log("Connected to: " + current + " at " + Date.now() + ".");
// Log the current number of users
console.log("There are now " + count + "users connected.");
// Handle disconnection
socket.on("disconnect", function() {
// Same routine as connect
console.log(current + ": disconnected at " + Date.now() + ".");
console.log("There are now " + count + "users connected.");
});
});
app.listen(3000);
Вот мой HTML клиент:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport">
<title>Paint</title>
<!-- <script src="/js/application.js"></script> -->
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
</head>
<body>
<header></header>
<nav></nav>
<aside>
<div id="toolbox"></div>
<!-- display: none; by default -->
<div id="chat"></div>
<div class="buttons">
<div class="toolBoxButton">Toolbox</div>
<div class="chatButton">Chat</div>
</div>
</aside>
<section></section>
<footer></footer>
<script>
var socket = io();
</script>
</body>
</html>
Почему не клиент подключиться?
Изменение 'io.sockets.on' на' io.on' ничего не изменило. Поэтому я попытался изменить, где я подключился. Я попытался поставить 'io.listen (app);' прямо перед обработчиком событий подключения, но потом он сообщает мне, что я могу: t подключить socket.io к экспресс-приложению, чтобы связать его с 'http.Server'. Поэтому я пытаюсь 'io.listen (http.createServer (app));', тогда я 'Undefined не является функцией' на' io.on'. –
@James_Parsons - Я не могу следить за тем, что вы пробовали, не видя всей последовательности кода. Почему бы вам просто не следовать инструкциям здесь: http://socket.io/docs/? Там все написано. Вам нужно будет узнать, какую версию socket.io и какую версию Express нужно знать, какие инструкции следует выполнять. – jfriend00
@ jfiriend00 спасибо за эту ссылку. Я пытался создать HTTP-сервер в руке. Wow Node.js быстро устарел! –