Giter Site home page Giter Site logo

atxserver2-android-provider's Issues

Unknown error: [WinError 2] 系统找不到指定的文件。

``D:\atxserver2-android-provider\atxserver2-android-provider>python main.py --server 10.252.25.198:4000
[I 201103 10:42:31 main:299] Owner: None
[I 201103 10:42:31 main:314] ProviderURL: http://10.252.63.137:3500

app-uiautomator.apk verison: 2.3.1
app-uiautomator-test.apk verison: 2.3.1
[I 201103 10:42:31 heartbeat:139] WS receive: {"success": true, "id": "37373a92-1d7e-11eb-bfe6-0242ac120003"}
[D 201103 10:42:31 main:234] DeviceEvent(present=True, serial='6040b6f3', status='device')
[I 201103 10:42:31 device:57] Init device: 6040b6f3
[D 201103 10:42:31 device:85] [6040b6f3] sdk: 27, abi: arm64-v8a, abis: ['arm64-v8a', 'armeabi-v7a', 'armeabi']
[D 201103 10:42:31 device:132] [6040b6f3] already pushed stf-binaries-0.2.1/node_modules/minicap-prebuilt/prebuilt/arm64-v8a/lib/android-27/minicap.so
[D 201103 10:42:32 device:113] [6040b6f3] use atx-agent: atx-agent-armv7
[D 201103 10:42:32 device:132] [6040b6f3] already pushed atx-agent-armv7
[D 201103 10:42:32 device:151] [6040b6f3] already installed vendor/WhatsInput-1.0.apk
app-uiautomator.apk verison: 2.3.1
app-uiautomator-test.apk verison: 2.3.1
APKPath: vendor/app-uiautomator-2.3.1\app-uiautomator.apk
[D 201103 10:42:32 device:151] [6040b6f3] already installed vendor/app-uiautomator-2.3.1\app-uiautomator.apk
APKPath: vendor/app-uiautomator-2.3.1\app-uiautomator-test.apk
[D 201103 10:42:32 device:151] [6040b6f3] already installed vendor/app-uiautomator-2.3.1\app-uiautomator-test.apk
[D 201103 10:42:32 device:161] [6040b6f3] forward atx-agent
[D 201103 10:42:33 device:208] [6040b6f3] tcpproxy.js start *:20001 -> 20000
[E 201103 10:42:33 main:264] Unknown error: [WinError 2] 系统找不到指定的文件。
Traceback (most recent call last):
File "main.py", line 247, in device_watch
await device.init()
File "D:\atxserver2-android-provider\atxserver2-android-provider\device.py", line 62, in init
await self._init_forwards()
File "D:\atxserver2-android-provider\atxserver2-android-provider\device.py", line 162, in _init_forwards
self._atx_proxy_port = await self.proxy_device_port(7912)
File "D:\atxserver2-android-provider\atxserver2-android-provider\device.py", line 214, in proxy_device_port
silent=True)
File "D:\atxserver2-android-provider\atxserver2-android-provider\device.py", line 222, in run_background
p = subprocess.Popen(*args, **kwargs)
File "C:\Users\lijianxi\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 800, in init
restore_signals, start_new_session)
File "C:\Users\lijianxi\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 1207, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

requirements.txt文件abdutils版本错误

Centos7.9 python 3.7 nodejs 8系统运行提示:

File "/data/xxx/work/atxserver2-android-provider/device.py", line 155, in _install_apk
self._device.install(path, force=True)
TypeError: install() got an unexpected keyword argument 'force'

requirements.txt文件adbutils版本
adbutils>=0.8.1,<1.0
解决思路:
1修改代码依赖高版本
def _install_apk(self, path: str):
assert path, "Invalid %s" % path
try:
m = apkutils.APK(path).manifest
info = self._device.package_info(m.package_name)
if info and m.version_code == info[
'version_code'] and m.version_name == info['version_name']:
logger.debug("%s already installed %s", self, path)
else:
print(info, ":", m.version_code, m.version_name)
logger.debug("%s install %s", self, path)
self._device.install(path, uninstall=True)
2.限制adbutils版本

adbutils 0.9.1
def install(self, apk_path: str, force: bool = False):
"""
sdk = self.getprop('ro.build.version.sdk')
sdk > 23 support -g

    Args:
        force (bool): uninstall package before install

    Raises:
        AdbInstallError
    """
    dst = "/data/local/tmp/tmp-{}.apk".format(int(time.time() * 1000))

    self.sync.push(apk_path, dst)
    if force:
        apk = apkutils2.APK(apk_path)
        package_name = apk.manifest.package_name
        self.uninstall(package_name)
    self.install_remote(dst, clean=True)

adbutils 0.11.0
def install(self,
path_or_url: str,
nolaunch: bool = False,
uninstall: bool = False,
silent: bool = False,
callback: typing.Callable[[str], None] = None):
"""
Install APK to device

    Args:
        path_or_url: local path or http url
        nolaunch: do not launch app after install
        uninstall: uninstall app before install
        silent: disable log message print
        callback: only two event now: <"BEFORE_INSTALL" | "FINALLY">
    
    Raises:
        AdbInstallError
    """
    if re.match(r"^https?://", path_or_url):
        resp = requests.get(path_or_url, stream=True)
        resp.raise_for_status()
        length = int(resp.headers.get("Content-Length", 0))
        r = ReadProgress(resp.raw, length)
        print("tmpfile path:", r.filepath())
    else:
        length = os.stat(path_or_url).st_size
        fd = open(path_or_url, "rb")
        r = ReadProgress(fd, length, source_path=path_or_url)

设备设置 - 魅族手机

进入 辅助功能 - 开发者选项
打开

  • USB调试
  • 不锁定屏幕
  • 显示点按操作反馈 推荐勾选上
  • 性能优化 - 高级日志输出(推荐全部允许)

关闭

  • 手机管家 - Flyme 支付保护

atxserver2-android-provider过滤掉了串号的IP地址的设备

  1. 某些root的设备,使用adb connect 设备IP,adb devices执行命令后,显示如10.0.0.2:5555 device。
    2.当连接这些设备后,atxserver2-android-provider会过滤掉串号为IP地址的设备,其实应当过滤掉如10.0.0.2:5555 offline的设备。
    3.对应代码的判断 if re.match(r"(\d+).(\d+).(\d+).(\d+):(\d+)", event.serial),此处可能需要优化一下,当前我屏蔽了此处代码判断,设备可以init成功,并且成功连接到atxserver2

设备设置 - 小米手机

进入开发者选项

依次勾选

  • 不锁定屏幕
  • 直接进入系统 (开启后不适用系统的锁屏样式,点亮屏幕直接进入系统,需要无屏幕密码)
  • USB调试 (连接USB后启用调试模式)
  • USB安装 (允许通过USB安装应用)
  • USB调试(安全设置) (允许通过USB调试修改权限或模拟点击) 这个一定要勾选,不然就没法操作了
  • 显示点按操作反馈 推荐勾选上
  • 启用MIUI优化 建议关掉,关掉后去权限设置里面配置下,安装应用就不会弹窗了

error 'NoneType' object has no attribute 'package_name'

Traceback (most recent call last):
File "main.py", line 124, in _install_apk
info = self._device.package_info(m.package_name)
AttributeError: 'NoneType' object has no attribute 'package_name'
[W 190326 14:44:00 main:133] [ce10171a3a96042f0c7e] Install apk vendor/WhatsInput_v1.0_apkpure.com.apk error 'NoneType' object has no attribute 'package_name'

安装axt-agent 安装不成功 -一直报OSError: [Errno 22] Invalid argument

报错信息:
[E 191022 17:27:05 main:263] Unknown error: [Errno 22] Invalid argument
Traceback (most recent call last):
File "main.py", line 246, in device_watch
await device.init()
File "E:\program\atxserver2-android-provider\device.py", line 60, in init
self._init_binaries()
File "E:\program\atxserver2-android-provider\device.py", line 117, in _init_binaries
zipfile_path=zipfile_path)
File "E:\program\atxserver2-android-provider\device.py", line 132, in _push_stf
dest_info = self.device.sync.stat(dest)
File "C:\Users\74156\AppData\Local\Programs\Python\Python36-32\lib\site-packages\adbutils_init
.py", line 423, in stat
return FileInfo(mode, size, datetime.datetime.fromtimestamp(mtime),
OSError: [Errno 22] Invalid argument

手机 oppo R11 adbutils版本是0.62的

好像安卓10无法使用

这个好像是minicap无法安装,其他都比较正常,atx感觉Appetizer安装的旧一些?打开会提示旧版应用。

image

部署完远程无法看到手机屏幕

Warning

These issues are not tracked. Please create new issues in the main atxserver2
repository: https://github.com/openatx/atxserver2/issues/new

image

DeviceEvent(present=True, serial='98895a3447564a4a48', status='device')
[I 190508 09:22:15 device:56] Init device: 98895a3447564a4a48
[D 190508 09:22:15 device:79] [98895a3447564a4a48] sdk: 26, abi: arm64-v8a, abis: ['arm64-v8a', 'armeabi-v7a', 'armeabi']
[D 190508 09:22:15 device:100] [98895a3447564a4a48] use atx-agent: atx-agent-armv7
[D 190508 09:22:16 device:124] [98895a3447564a4a48] already installed vendor/WhatsInput_v1.0_apkpure.com.apk
[D 190508 09:22:16 device:124] [98895a3447564a4a48] already installed vendor/app-uiautomator.apk
[D 190508 09:22:16 device:124] [98895a3447564a4a48] already installed vendor/app-uiautomator-test.apk
[D 190508 09:22:16 device:134] [98895a3447564a4a48] forward atx-agent
[D 190508 09:22:16 device:178] [98895a3447564a4a48] tcpproxy.js start *:20000 -> 20010
[D 190508 09:22:16 device:178] [98895a3447564a4a48] tcpproxy.js start *:20001 -> 20012
[D 190508 09:22:16 device:139] [98895a3447564a4a48] adbkit start, port 20002
[I 190508 09:22:17 main:254] Device:98895a3447564a4a48 is ready
[D 190508 09:22:17 main:228] DeviceEvent(present=True, serial='f61cfec3', status='device')
[I 190508 09:22:17 device:56] Init device: f61cfec3
[D 190508 09:22:17 device:79] [f61cfec3] sdk: 25, abi: armeabi-v7a, abis: ['armeabi-v7a', 'armeabi']
[D 190508 09:22:17 device:100] [f61cfec3] use atx-agent: atx-agent-armv7
[D 190508 09:22:18 device:124] [f61cfec3] already installed vendor/WhatsInput_v1.0_apkpure.com.apk
[D 190508 09:22:18 device:124] [f61cfec3] already installed vendor/app-uiautomator.apk
[D 190508 09:22:18 device:124] [f61cfec3] already installed vendor/app-uiautomator-test.apk
[D 190508 09:22:18 device:134] [f61cfec3] forward atx-agent
[D 190508 09:22:18 heartbeat:93] websocket send: {'udid': '98895a3447564a4a48', 'platform': 'android', 'colding': False, 'provider': {'atxAgentAddress': '192.168.5.124:20000', 'remoteConnectAddress': '192.168.5.124:20002', 'whatsInputAddress': '192.168.5.124:20001'}, 'properties': {'serial': '98895a3447564a4a48', 'brand': 'samsung', 'version': '8.0.0', 'model': 'SM-G9500', 'name': '三星 Galaxy S8'}, 'command': 'update'}
[D 190508 09:22:18 device:178] [f61cfec3] tcpproxy.js start *:20003 -> 20005
[D 190508 09:22:18 device:178] [f61cfec3] tcpproxy.js start *:20004 -> 20007
[D 190508 09:22:18 device:139] [f61cfec3] adbkit start, port 20006
[I 190508 09:22:21 main:254] Device:f61cfec3 is ready
[D 190508 09:22:21 heartbeat:93] websocket send: {'udid': 'f61cfec3', 'platform': 'android', 'colding': False, 'provider': {'atxAgentAddress': '192.168.5.124:20003', 'remoteConnectAddress': '192.168.5.124:20006', 'whatsInputAddress': '192.168.5.124:20004'}, 'properties': {'serial': 'f61cfec3', 'brand': 'Xiaomi', 'version': '7.1.2', 'model': 'MI 4LTE', 'name': '小米 4 '}, 'command': 'update'}
三星S8官方系统,小米4刷的魔趣系统

占用设备的时候,提升安装atx失败,但是使用是正常的

raise AdbInstallError(output)

adbutils.errors.AdbInstallError: Failure [-26]
[W 190703 13:10:30 device:131] [7LKFWW99AM5PYDJN] Install apk vendor/app-uiautomator.apk error Failure [-26]
在占用设备的时候,提升安装atx失败,然后退出占用的时候也会安装atx,还是失败

启动的时候报错adb无法使用

[D 191012 15:24:41 main:232] DeviceEvent(present=True, serial='de60820', status='device')
[I 191012 15:24:41 device:57] Init device: de60820
[D 191012 15:24:41 device:85] [de60820] sdk: 25, abi: arm64-v8a, abis: ['arm64-v8a', 'armeabi-v7a', 'armeabi']
[D 191012 15:24:41 device:132] [de60820] already pushed stf-binaries-0.2/node_modules/minicap-prebuilt/prebuilt/arm64-v8a/lib/android-25/minicap.so
[D 191012 15:24:41 device:132] [de60820] already pushed stf-binaries-0.2/node_modules/minicap-prebuilt/prebuilt/arm64-v8a/bin/minicap
[D 191012 15:24:41 device:132] [de60820] already pushed stf-binaries-0.2/node_modules/minitouch-prebuilt/prebuilt/arm64-v8a/bin/minitouch
[D 191012 15:24:41 device:113] [de60820] use atx-agent: atx-agent-armv7
[D 191012 15:24:41 device:132] [de60820] already pushed atx-agent-armv7
[D 191012 15:24:41 device:151] [de60820] already installed vendor/WhatsInput-1.0.apk
APKPath: vendor/app-uiautomator-2.0.3/app-uiautomator.apk
{'version_name': '1.1.7', 'version_code': '1001007', 'signature': '2482a99 [1bd118e8]'} : 2000003 2.0.3
[D 191012 15:24:41 device:154] [de60820] install vendor/app-uiautomator-2.0.3/app-uiautomator.apk
Traceback (most recent call last):
File "/Users/kuaishou/atxserver2-android-provider/device.py", line 155, in _install_apk
self._device.install(path)
File "/Users/kuaishou/atxserver2-android-provider/venv/lib/python3.6/site-packages/adbutils/mixin.py", line 180, in install
self.install_remote(dst, clean=True)
File "/Users/kuaishou/atxserver2-android-provider/venv/lib/python3.6/site-packages/adbutils/mixin.py", line 198, in install_remote
raise AdbInstallError(output)
adbutils.errors.AdbInstallError: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.github.uiautomator signatures do not match the previously installed version; ignoring!]
[W 191012 15:24:42 device:158] [de60820] Install apk vendor/app-uiautomator-2.0.3/app-uiautomator.apk error Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.github.uiautomator signatures do not match the previously installed version; ignoring!]
APKPath: vendor/app-uiautomator-2.0.3/app-uiautomator-test.apk
[D 191012 15:24:42 device:151] [de60820] already installed vendor/app-uiautomator-2.0.3/app-uiautomator-test.apk
[D 191012 15:24:42 device:161] [de60820] forward atx-agent
[E 191012 15:24:42 main:262] Unknown error: unknown host service
Traceback (most recent call last):
File "main.py", line 245, in device_watch
await device.init()
File "/Users/kuaishou/atxserver2-android-provider/device.py", line 62, in init
await self._init_forwards()
File "/Users/kuaishou/atxserver2-android-provider/device.py", line 162, in _init_forwards
self._atx_proxy_port = await self.proxy_device_port(7912)
File "/Users/kuaishou/atxserver2-android-provider/device.py", line 205, in proxy_device_port
local_port = await self.adb_forward_to_any("tcp:" + str(device_port))
File "/Users/kuaishou/atxserver2-android-provider/device.py", line 194, in adb_forward_to_any
async for f in adb.forward_list():
File "/Users/kuaishou/atxserver2-android-provider/asyncadb.py", line 176, in forward_list
await conn.check_okay()
File "/Users/kuaishou/atxserver2-android-provider/asyncadb.py", line 60, in check_okay
raise AdbError(await self.read_string())
asyncadb.AdbError: unknown host service

执行python3 main.py --server localhost:4000报错

Last login: Wed Mar 27 16:18:35 on ttys002
Mac-mini-4:~ mac$ cd /Users/mac/atxserver2-android-provider
Mac-mini-4:atxserver2-android-provider mac$ python3 main.py --server localhost:4000
[I 190327 16:21:10 main:222] ProviderURL: http://10.1.8.194:3500
[W 190327 16:21:10 heartbeat:113] WS connect error: [Errno 61] Connection refused, reconnect after 2s
[W 190327 16:21:12 heartbeat:113] WS connect error: [Errno 61] Connection refused, reconnect after 3s
[W 190327 16:21:15 heartbeat:113] WS connect error: [Errno 61] Connection refused, reconnect after 4s
[W 190327 16:21:19 heartbeat:113] WS connect error: [Errno 61] Connection refused, reconnect after 5s
[W 190327 16:21:24 heartbeat:113] WS connect error: [Errno 61] Connection refused, reconnect after 6s
[W 190327 16:21:30 heartbeat:113] WS connect error: [Errno 61] Connection refused, reconnect after 7s

这里为什么要单独实现heartbeat

原有atx-agent在python atxserver2版本里没看到有接收heartbeat实现。
看了下go版的实现
HMACSHA256(( Request.from["timestamp"] +‘:’ + Request.from["identifier"]),password)==request.from["messageMAC"]
password为:hello kitty

python3 main.py --server localhost:4000后报错

python3 main.py --server localhost:4000后报错

File "/Users/luyunpeng/Downloads/myworkspace/atx2/atxserver2-android-provider/device.py", line 136, in _init_apks
whatsinput_apk_path = get_whatsinput_apk()
NameError: name 'get_whatsinput_apk' is not defined

安卓机低版本无法交互,atx-agent.log日志如下

127.0.0.1 - - [17/Feb/2020:10:32:28 +0800] "GET /minitouch HTTP/1.1" 200 0
2020/02/17 10:32:28 cmdctrl.go:28: DEBUG program finished
2020/02/17 10:32:28 cmdctrl.go:28: DEBUG Args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0]
2020/02/17 10:32:28 httpserver.go:980: minicap connection: 127.0.0.1:56113
2020/02/17 10:32:28 cmdctrl.go:28: DEBUG start args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0], env: [LD_LIBRARY_PATH=/data/local/tmp]
2020/02/17 10:32:28 httpserver.go:996: dial @minicap err: dial unix @minicap: connect: connection refused, wait 0.5s
2020/02/17 10:32:28 cmdctrl.go:28: DEBUG program pid: 3023
2020/02/17 10:32:28 httpserver.go:900: minitouch connection: 127.0.0.1:56116
2020/02/17 10:32:28 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:28 cmdctrl.go:28: DEBUG ArgsFunc error: fork/exec /system/bin/pm: exec format error
2020/02/17 10:32:28 cmdctrl.go:28: DEBUG program finished
127.0.0.1 - - [17/Feb/2020:10:32:28 +0800] "GET /shell?command=input%20keyevent%20WAKEUP HTTP/1.1" 200 39
2020/02/17 10:32:28 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
127.0.0.1 - - [17/Feb/2020:10:32:28 +0800] "GET /shell?command=input%20keyevent%20WAKEUP HTTP/1.1" 200 39
2020/02/17 10:32:29 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:29 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:30 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:30 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:31 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
127.0.0.1 - - [17/Feb/2020:10:32:31 +0800] "GET /shell?command=input%20keyevent%20BACK HTTP/1.1" 200 39
2020/02/17 10:32:31 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:32 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:32 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:33 httpserver.go:919: dial @minitouchagent error: dial unix @minitouchagent: connect: connection refused, wait 0.5s
2020/02/17 10:32:33 httpserver.go:911: unix @minitouchagent connect failed
2020/02/17 10:32:33 cmdctrl.go:28: DEBUG cmd args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0]
2020/02/17 10:32:33 httpserver.go:1012: minicap read error, try to read again
2020/02/17 10:32:33 httpserver.go:996: dial @minicap err: dial unix @minicap: connect: connection refused, wait 0.5s
2020/02/17 10:32:33 cmdctrl.go:28: DEBUG program finished
2020/02/17 10:32:33 cmdctrl.go:28: DEBUG Args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0]
2020/02/17 10:32:33 cmdctrl.go:28: DEBUG start args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0], env: [LD_LIBRARY_PATH=/data/local/tmp]
2020/02/17 10:32:33 cmdctrl.go:28: DEBUG program pid: 3092
127.0.0.1 - - [17/Feb/2020:10:32:33 +0800] "GET /shell?command=input%20keyevent%20WAKEUP HTTP/1.1" 200 39
127.0.0.1 - - [17/Feb/2020:10:32:33 +0800] "GET /info/rotation HTTP/1.1" 200 14
2020/02/17 10:32:35 cmdctrl.go:28: DEBUG cmd args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0]
2020/02/17 10:32:35 httpserver.go:1012: minicap read error, try to read again
2020/02/17 10:32:35 httpserver.go:996: dial @minicap err: dial unix @minicap: connect: connection refused, wait 0.5s
2020/02/17 10:32:35 cmdctrl.go:28: DEBUG program finished
2020/02/17 10:32:35 cmdctrl.go:28: DEBUG Args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0]
2020/02/17 10:32:35 cmdctrl.go:28: DEBUG start args: [/data/local/tmp/minicap -S -P 1080x1920@800x800/0], env: [LD_LIBRARY_PATH=/data/local/tmp]
2020/02/17 10:32:35 cmdctrl.go:28: DEBUG program pid: 3151
127.0.0.1 - - [17/Feb/2020:10:32:35 +0800] "GET /shell?command=input%20keyevent%20WAKEUP HTTP/1.1" 200 39
2020/02/17 10:32:35 httpserver.go:943: readJson err: read tcp 127.0.0.1:7912->127.0.0.1:56116: use of closed network connection
127.0.0.1 - - [17/Feb/2020:10:32:28 +0800] "GET /minitouch HTTP/1.1" 200 0
127.0.0.1 - - [17/Feb/2020:10:32:35 +0800] "GET /info/rotation HTTP/1.1" 200 14
127.0.0.1 - - [17/Feb/2020:10:32:36 +0800] "POST /info/battery HTTP/1.1" 200 7
127.0.0.1 - - [17/Feb/2020:10:32:46 +0800] "POST /info/battery HTTP/1.1" 200 7
2020/02/17 10:32:46 httpserver.go:1008: transfer closed
2020/02/17 10:32:46 httpserver.go:1039: stream finished
127.0.0.1 - - [17/Feb/2020:10:32:28 +0800] "GET /minicap HTTP/1.1" 200 0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.