首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用socket.io时客户端未连接

使用socket.io时客户端未连接
EN

Stack Overflow用户
提问于 2020-05-18 11:55:18
回答 1查看 24关注 0票数 0

我不知道我错过了什么。没有抛出错误或其他任何东西,只是连接不上。

服务器端代码

代码语言:javascript
运行
复制
const path = require('path');
const http = require('http');
const express = require('express');
const socketio = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = socketio(server);
// Set static folder
app.use(express.static(path.join(__dirname, 'public')));

// Run when client connects
io.sockets.on('connection', socket => {
    console.log('New Conncection...')
})

const PORT = 4000 || process.env.PORT;

server.listen(PORT, () => console.log(`Server running on port ${PORT}`));

客户端代码

代码语言:javascript
运行
复制
var io = require('socket.io-client')
var socket = io.connect('http://localhost:4000', {reconnect: true});
EN

回答 1

Stack Overflow用户

发布于 2020-05-19 17:04:44

下面是一个简单的工作示例:

文件结构:

代码语言:javascript
运行
复制
.
├── public
│   └── index.html
└── server.js

server.js

代码语言:javascript
运行
复制
const path = require('path');
const http = require('http');
const express = require('express');
const socketio = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = socketio(server);
// Set static folder
app.use(express.static(path.join(__dirname, 'public')));

// Run when client connects
io.sockets.on('connection', (socket) => {
  console.log('New Conncection...');
  io.sockets.emit('event', 'everyone');

  socket.on('disconnect', () => {
    console.log('disconnected');
  });
});

const PORT = 4000 || process.env.PORT;

server.listen(PORT, () => console.log(`Server running on port ${PORT}`));

index.html

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script src="https://cdn.jsdelivr.net/npm/socket.io-client@2/dist/socket.io.js"></script>
    <script>
      document.addEventListener('DOMContentLoaded', () => {
        var socket = io('http://localhost:4000', { reconnection: true });
        socket.on('connect', function() {
          console.log('socket connection success');
        });
        socket.on('event', function(data) {
          console.log('data:', data);
        });
        socket.on('disconnect', function() {
          console.log('socket disconnect');
        });
      });
    </script>
  </body>
</html>

服务端的日志:

代码语言:javascript
运行
复制
Server running on port 4000
New Conncection...
disconnected
New Conncection...

客户端日志:

代码语言:javascript
运行
复制
socket connection success
data: everyone
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61862200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档