react-native - 世博会套接字发射不工作,但正在工作
问题描述
任何人都知道为什么发出不工作?如果我单击按钮,它什么也不会发生。
这是我的前端代码:
import io from 'socket.io-client/dist/socket.io';
const socket = io('http://xxxxx:3000', {
transports: ['websocket']
});
useEffect(() => {
socket.on('connect', () => {
setConnected(true);
console.log('user connected');
});
socket.on('getmessage', message => {
console.log(message);
});
});
...
<TouchableOpacity onPress={() => socket.emit('getmessage', chatMessage)} style={{padding: 4, borderRadius: 4, backgroundColor: 'red'}}>
<Text>Send</Text>
</TouchableOpacity>
这是我的后端代码:
const http = require('http');
const express = require('express');
const app = express();
const routes = require('./routes/index');
const cors = require('cors');
const server = http.createServer(app);
const io = require('socket.io')(server);
app.use(cors());
app.use(express.json());
app.use(routes);
io.on('getmessage', message => {
console.log(message);
});
io.on('connection', socket => {
console.log('a user connected');
});
server.listen(3000, () => {
console.log('Server listen');
});
..................................................... ..................................................................
解决方案
你能像下面这样改变你的服务器端并试一试吗:)
// ... your code
io.on('connection', socket => {
console.log('a user connected');
socket.on('getmessage', message => {
console.log(message);
});
});
推荐阅读
- cytoscape.js - Cytoscape.js 扩展,用于更灵活的边缘着色
- c# - 如何更改 LockScreen 背景(查找 windows.system.UserProfile.dll)?
- kubernetes - 一个完整的 Kubernetes pod 是否仍然保留所需的资源?
- c++ - 使用 MinGW 构建 ASSIMP 导致文件太大错误
- javascript - 为什么悬停时图像不会变为以前的图像?
- postgresql - mat视图的依赖关系示意图
- c# - 将已发布文件的内容从 Angular 读取到 C#
- python - 使用 Python 进行 MSAL 身份验证显示未经授权的客户端?
- c - 在C中的循环内分配和释放内存
- java - 通过 Bson 过滤器时,Mongo 函数 updatemany() 不起作用