首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Socket.io无法在ReactJS应用程序中连接

Socket.io无法在ReactJS应用程序中连接
EN

Stack Overflow用户
提问于 2017-01-08 15:33:20
回答 0查看 2.1K关注 0票数 2

我正在使用react、node、express和socket.io构建一个小应用程序。我正在使用socket.io创建聊天功能,但它似乎无法连接。在服务器的控制台中没有错误消息,但在浏览器中,im反复收到错误消息,如下所示

代码语言:javascript
运行
AI代码解释
复制
POST http://localhost:3000/socket.io/?EIO=3&transport=polling&t=Lb-j6De 404 (Not Found).

我不知道出了什么问题,我浏览了文档,但我仍然在这个问题上苦苦挣扎。

我的服务器

代码语言:javascript
运行
AI代码解释
复制
import express from 'express';
import mongoose from 'mongoose';
import bodyParser from 'body-parser';
import passport from 'passport';
import cros from 'cors';
import path from 'path';
import webpack from 'webpack';
import http from 'http';
import SocketIO from 'socket.io';
import webpackmiddleware from 'webpack-dev-middleware';
import webpackHotMiddleware from 'webpack-hot-middleware';
import webpackConfig from '../webpack.config.dev';
import regusers from './models/regusers.model';
import Router from './routes/UserRouter';
import Chat from './services/socket/chat';

const cross = cros();
const app = express();
const router = express.Router();
const server = http.Server(app);
const io = new SocketIO(server);
const port =3000;
const compile=webpack(webpackConfig);
const db='mongodb://localhost/parkspace';

let users = [];
let sockets = {};

mongoose.Promise = global.Promise;

mongoose.connect(db);

app.use(webpackmiddleware(compile,{
  hot:true,
  publicPath: webpackConfig.output.publicPath,
  noInfo:true
}));

app.use(webpackHotMiddleware(compile));
app.use(cross);
app.use(router);

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
   extended:true
}));


app.listen(port,()=> console.log('Running on port: '+port));

app.use('/', express.static(__dirname));

Router(app);
// Chat(app,io);

io.on('connection', (socket) => {

        console.log('connected');

        socket.on('message', (msg) => {
            console.log(msg);
        });

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

});



app.get('*',(req,res) => {
   res.sendFile(path.resolve(__dirname,'./index.html'));
});

我的React前端

代码语言:javascript
运行
AI代码解释
复制
import React from 'react';
import io from 'socket.io-client';
import Paper from 'material-ui/Paper';
import TextField from 'material-ui/TextField';
import FlatButton from 'material-ui/FlatButton';


const socket = io.connect('http://localhost:3000');

const style = {
  margin: 20,
  textAlign: 'center',
  display: 'inline-block',
};

const styleInput = {
    padding:10,
    margin: 10,
    width: '85%'

};

const styleButton = {
    margin:12,
    float:'right'
};


class chatContainer extends React.Component{

    constructor(props){
       super(props);
       this.state={

       };
    }

    chatmessage = () => {
        let message = this.refs.chattext.getValue();
        socket.emit('message', message);
        console.log('emmited');

    }


   render(){
     return(
         <div socket = { socket } >
            <Paper style={style} zDepth={2} className="row">
                <TextField
                  hintText="Type message here..."
                  multiLine={true}
                  rows={2}
                  rowsMax={4}
                  style={styleInput}
                  className="col-md-12"
                  fullWidth={true}
                  ref="chattext"
                />
                <div className="col-md-3" style={styleButton} className="row" >
                   <FlatButton label="Send" onTouchTap={this.chatmessage}/>
                   <FlatButton label="Cancel"/>
                </div>
            </Paper>
         </div>
     );
   }
}

export default chatContainer;

任何原因,为什么它没有连接,为什么我没有得到任何与socketio相关的东西,因为它从服务器登录控制台。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41534370

复制
相关文章
在ReactJS体验ES6中的class类
你也可以使用类表达式定义类。但是不同于类表达式,类声明不允许再次声明已经存在的类,否则将会抛出一个类型错误。
JavaEdge
2021/03/15
1.8K0
reactjs
最近在学习react js,ReactJS是Facebook开发的用于构建用户界面的JAVASCRIPT库,利用其可以实现组件式开发。
用户1394570
2018/08/08
1.3K0
在linux中连接wifi
在Linux中连接WiFi的步骤:1. 进入终端获取管理员权限,2. 查看可用的无线网卡,记下网卡名称,3. 查看网卡的激活状态,4. 激活网卡,5. 查看网卡激活状态,6. 搜索附近可用的无线网络,7. 如果存在可用的无线网络,8. 为网卡分配IP地址,9. 等待片刻,10. 测试网络连接状态。
CN_Simo
2017/12/26
5.7K0
在linux中连接wifi
在DataGrip中连接IoTDB
IoTDB是工业物联网领域非常优秀的一款时序数据库,相信很多用户在使用的过程中,都只能使用iotdb-cli进行连接。查看到的数据可能是这样:
刘涛华
2021/05/17
2.3K0
在DataGrip中连接IoTDB
解决LNMP中MySQL无法远程连接问题
1、首先需要自己在phpmyadmin里添加一个用户 主机为% 的任意主机(也可以编辑已有的用户)
wo.
2021/06/15
3.1K0
在 .NET 应用程序中运行 JavaScript
前几天我在做一个副业,意识到我需要使用一些 JavaScript 功能。一想到要再次处理 Node.js 和 npm,我就完全放弃了,所以我决定研究一下在 .NET 应用程序中运行 JavaScript 的可能性。很疯狂吧?实际上,这出乎意料的简单。
独立观察员
2022/12/06
2.7K0
在 .NET 应用程序中运行 JavaScript
Hello ReactJS
前言 React学习前先搭好环境,官网的例子看着比较分散。结合webpack就可以体验完整的es6开发流程了。 源码:https://github.com/Ryan-Miao/hello-react-js/releases/tag/0.1 1. 环境搭建 涉及以下几个技术。但从hello world的角度说,目前先不用知道是干嘛的,先用来学习react,后面再去研究各个组件的功能。 Webpack - A module bundler Babel - A Javascript compiler ES6 -
Ryan-Miao
2018/03/13
1.3K0
Hello ReactJS
Navicat无法连接mysql
原因:由于用户加密方式不同,如果是采用caching_sha2_password会由于navicat的版本问题导致无法连接,需要设置成mysql_native_password
风起--追风
2022/09/17
7.7K0
Navicat无法连接mysql
在IPA中重签名iOS应用程序
当我们在对iOS应用程序执行黑盒安全测试时,我们一般只能从AppStore来访问和获取iOS应用程序。但是在大多数情况下,客户都会给我们提供一个IPA文件。在黑盒测试过程中,我们无法访问目标应用的源代码,因此通过Xcode将其部署到设备并进行测试,几乎是不可能的。但是有一种可行的解决方案,即使用我们手头上的配置文件来重新启动应用程序,并将其部署到我们的测试设备上。
FB客服
2020/03/10
2.4K0
在Flutter中制作指纹认证应用程序
现在许多手机都配备了指纹传感器,这使得用户登录和本地身份验证更容易,而且比使用密码更安全。
徐建国
2021/07/31
2.6K0
如何将ReactJS与Flask API连接起来?
构建既可扩展又引人入胜的现代 Web 应用程序需要使用相关技术。ReactJS和Flask是两个流行的框架,分别用于前端和后端开发。
很酷的站长
2023/08/11
4200
如何将ReactJS与Flask API连接起来?
socket.io
本译文来源于https://socket.io/get-started/chat/,不足之处请多批评指正。 最近在学些vuejs和websocket相关技术,使用了websocket的两个封装的库vue-socket.io和vue-websocket
ccf19881030
2020/04/10
3.9K0
socket.io
SignalR 在IE中无法工作 - Internet Explorer
运行基于SignalR的超线程上载器的代码,发现SignalR 在IE 9上居然没法工作了,提示如下: 提示很明显,需要json2.js的支持。 使用Nuget 搜索json2.js 并安装: 在引用
张善友
2018/01/29
3.3K0
SignalR 在IE中无法工作 - Internet Explorer
【6】VScode 无法在终端输入问题,提示:无法在只读编辑器中编辑
2.在设置中输入 run code config 找到里面的 run in terminal 打勾即可,往下滑动几秒就看到了
汀丶人工智能
2022/12/21
7.2K0
【6】VScode 无法在终端输入问题,提示:无法在只读编辑器中编辑
isomorphic reactjs
web应用从最早静态页面、到php后台框架输出、到mv*为主的SPA、到基于node中层的直出,目前有人提出web的下次改变可能将是基于isomorphic javascript的前后台同构应用。
IMWeb前端团队
2019/12/03
2.8K0
isomorphic reactjs
Oracle——无法在查询中执行 DML 操作
create or replace function test_f(id varchar2) return varchar2 is Result varchar2(100); begin insert into sfcs_temp_17109 (sn)values(id);
_一级菜鸟
2019/09/10
4.3K0
Oracle——无法在查询中执行 DML 操作
isomorphic reactjs
isomorphic javascript web应用从最早静态页面、到php后台框架输出、到mv*为主的SPA、到基于node中层的直出,目前有人提出web的下次改变可能将是基于isomorphic
IMWeb前端团队
2017/12/29
1.8K0
isomorphic reactjs
ReactJS简介
1、ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。由于 React 的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。所以,越来越多的人开始关注和使用,认为它可能是将来 Web 开发的主流工具。 2、ReactJS的背景和原理 在Web开发中,我们总需要将变化的数据实时反应到UI上,这时
小胖
2018/06/27
4K0
Ubuntu root无法SSH连接
我在PD17 安装了Ubutu,非常的恶心,无法SSH连接,之前使用CentOS的时候,都是有SSH连接的,除此之外,即便你开启了SSH功能,root用户也是无法直接连接的!
收心
2022/08/24
2.8K0
win10无法连接windows服务器,无法连接SENS服务
首先,进入windows界面的时候,前期加载速度变得极其慢,进入主界面之后,就是这样了
Mokwing
2020/09/08
9.7K0

相似问题

无法用NodeJS连接到独立的socket.io和ReactJS

14

Socket.io在Reactjs

22

无法在socket.io中连接到node.js连接

12

Socket.IO无法连接- /socket.io/ 404?

10

无法在docker中连接多个python socket.io

122
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文