2017-06-28 5 views
1

ReactとPubnubとNode.JSを使ってチャットベースのアプリケーションを構築しようとしています。すべては、コードの次の行に「場所エラーの予期しない使用」を受ける以外、アプリケーションの作成を通じてうまくいった:( 'location'の予期せぬ使用)PubNubとの反応

Line 23: ssl: (location.protocol.toLowerCase() === 'https:'),  

    import React, { Component } from 'react'; 
    import logo from './logo.svg'; 
    import './App.css'; 
    import Messages from './Messages.js'; 
    import MessageHistory from './MessageHistory.js'; 
    import $ from 'jquery'; 
    import { BrowserRouter, Route, Link, NavLink, Switch } from 'react-router-dom'; 
    import Pubnub from 'pubnub'; 

    class App extends Component { 
     constructor(props){ 
     super(props); 
     this.state = { 
      username: '', 
      history: [], 
     } 
     this.sendMessage = this.sendMessage.bind(this); 
    } 
    componentDidMount() { 
     this.Pubnub = Pubnub.init({ 
     publish_key: 'pub-redacted', 
     subscribe_key: 'sub-redacted', 
     ssl: (location.protocol.toLowerCase() === 'https:'), 
     }); 
     this.Pubnub.subscribe({ 
     channel: 'Somerset', 
     message: (message) => this.setState({ 
      history: this.state.history.concat(message) 
     }) 
     }) 
    } 
     sendMessage = (message) => { 
     this.Pubnub.publish({ 
      channel: 'Somerset', 
      message: message, 
     }) 
     } 
     render() { 
     return (
      <BrowserRouter> 
      <div className="App"> 
      <MessageHistory history={this.state.history} /> 
      <Messages username={this.state.username} sendMessage={this.sendMessage} /> 
      </div> 
      </BrowserRouter> 
     ); 
     } 
      } 
      export default App; 

任意のアイデアを、私はこの問題を解決することができますか?

+1

!返信を忘れました。 SSLをtrueに設定すると、トリックがかかりました!どうもありがとう! –

+0

素晴らしい - 私は公式の答えに私のコメントを移動しました。 –

答えて

0

常にSSL

location

オブジェクト(ウィンドウのプロパティ)を使用し、それはブラウザであるような反応/ノードで利用できません。詳細はSee this post on SO postをご覧ください。

しかし、Pubnubオブジェクトの初期化時にSSLを使用しない理由はありません。条件付きで設定するには、アプリケーションのプロトコルを使用するのではなく、実際に設定することをお勧めします。私のせいクレイグ@CraigConover

this.Pubnub = Pubnub.init({ 
    publish_key: 'pub-redacted', 
    subscribe_key: 'sub-redacted', 
    // ssl: true 
}); 
関連する問題