昨天在處理為 React Native 加上 聊天室的功能,首先遇到的問題就是串接 Socket ,要在 RN 上使用 socket 需要安裝 socket.io-client,安裝之後 import socket.io-client/socket.io 時,遇到了這個 error

undefined is not an object (evaluting 'navigator.userAgent.match')

找了一下解決方法 發現這個套件不能用 import ,必需用 require 另外需要 assign window.navigator.userAgent

正確設定方法如下

1
2
3
4
5
6
7
import React, { Component } from 'react-native';

window.navigator.userAgent = 'react-native';

const io = require('socket.io-client/socket.io');

const socket = io('ws://', { jsonp: false });

#Reference

http://browniefed.com/blog/2015/05/16/react-native-and-socket-dot-io/