React-Native 上的连接升级

Posted

技术标签:

【中文标题】React-Native 上的连接升级【英文标题】:Connection Upgrade on React-Native 【发布时间】:2017-08-08 12:01:43 【问题描述】:

所以我目前正在使用 React-Native 开发一个应用程序,我必须实现 Websocket。 现在我正在尝试将我的应用程序连接到 Mattermost。对于 ws,我们必须从一个 html get 请求开始,它将被升级为一个 ws 请求。 示例:

URL: https://URL/api/v3/users/websocket
Méthod : GET
Adress : 10.10.10.10:8080
Code d’état : 200

Response (39 o) 
Server  "nginx"
Date    "Tue, 08 Aug 2017 12:33:21 GMT"
Connection  "upgrade"
Upgrade "websocket"
Sec-WebSocket-Accept    "vG2CYVx3/p+6ei/8e5fGMN8qq7A="

Request's header (769 o)    
Host    "URL"
User-Agent  "Mozilla/5.0 (Windows NT 6.1; … Gecko/20100101 Firefox/54.0"
Accept  "text/html,application/xhtml+x…lication/xml;q=0.9,*/*;q=0.8"
Accept-Language "fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3"
Accept-Encoding "gzip, deflate, br"
Sec-WebSocket-Version   "13"
Origin  "URL"
Sec-WebSocket-Extensions    "permessage-deflate"
Sec-WebSocket-Key   "HsX9INf0fr7x0cQAglMyjg=="
Cookie  "MMAUTHTOKEN=7xaaaaaaaaahezhatnwxwih;"
Connection  "keep-alive, Upgrade"
Upgrade "websocket"

所以我的问题是如何在 react 上进行可升级的连接,并使用它来建立 wss 连接。

目前我正在使用 axios 为我的 websocket 连接发出我的 html 请求和 socket.io。

【问题讨论】:

为什么要升级而不是创建新的正常 ws 连接?对不起,我真的不明白这个问题。也许您可以扩展您所说的部分:“但现在我必须将其连接到真实网站” 这个问题能不能多一点 @Borjante 我没有选择,我必须将我的应用程序连接到 Mattermost 服务器,遗憾的是升级连接 @ashutoshpandey 我会编辑 很好的编辑,遗憾的是我不能帮助你 【参考方案1】:

好的,找到了解决方案。 刚刚下载了this驱动并包含在我的App中:

import Websocket from "../Applications/websocket_client"

export default class SecWatt extends Component 
    constructor(props)
        super(props);
    

    componentDidMount()
        webs = new Websocket();
        webs.setEventCallback(printEvent);
        webs.initialize("wss://*MattermostURL*/api/v3/users/websocket" , "YourToken");
    
    render()
    
        return(
            <View>
            </View>
        );
        


function printEvent(msg)
        console.log(msg);
    

【讨论】:

以上是关于React-Native 上的连接升级的主要内容,如果未能解决你的问题,请参考以下文章

如何从 React ^0.14.8 & React-native ^0.24.1 升级到 React 15.0.2 和 React-native 0.26.3

react-native 升级到 0.56 后的问题

如何升级 react-native gradle 版本

React-Native入门

iOS 14 升级中未加载 react-native 图像

离线时发布(React-Native)