我已经尝试连接套接字与React Native移动的应用程序.节点服务器socket.io是工作,我有与react web使用,但当我使用React Native移动应用程序有不工作
客户端(React Native
import io from 'socket.io-client';
const ENDPOINT = "http://192.168.1.3:7000";
const socket = io(ENDPOINT, {transports: ['websocket']});
const getMessage = () => {
socket.on('getMessage', (data) => {
console.log('socket data', data);
})
};
const sendMessage = () => {
var userid = log.userid
var message = "msg from app"
socket.emit('send msg', { userid, message });
}
服务器(节点J)
const app = express();
const server = app.listen(7000);
const io = require('socket.io')(server, {
cors : {
origin:'*'
}
});
io.on("connection",(socket)=>{
socket.on('sendMessage',({userid, message})=>{
io.emit('getMessage',{userid, message});
})
})
3条答案
按热度按时间km0tfn4u1#
dev!我解决了这个问题,只是没有使用socket.io。我发现Socket.io在移动的应用程序中不是一个好的选择。使用WebSocket API代替。
React组分
服务器
在使用Express时,我将此服务器绑定在/bin/www中,并正常工作。
jslywgbw2#
当我将react-native更改为使用ws协议时,我能够工作。
pod7payv3#
你的代码应该可以工作。
只是想把emit中的主题改成“sendMessage”
添加错误登录后,刚刚创建套接字一样,如below
找到错误可能会有帮助