1. 程式人生 > >通過WebSocket建立長連結實時獲取資料

通過WebSocket建立長連結實時獲取資料

     前段時間公司在做的一個專案,需要實時獲取到最新的行情資料,行情資料每秒更新,當時考慮過用輪詢方式獲取,但是稍微推敲,很是不妥。當用戶量多了,每個客戶端都要去輪詢伺服器,給伺服器造成的壓力很大大,而且使用者的體驗也不好,頻繁的請求也會導致手機發熱,電量耗得很快。後來方案是:搭建一個webSocket中轉伺服器去做輪詢拿到資料,然後將資料進行分發。後臺的哥們搭好webSocket伺服器後,給了一個連結地址,格式是ws://xxx.xxx.xxx:埠號。我通過匯入一個jar包,呼叫相關的api進行了連結。


WebSocketConnection connection = new WebSocketConnection(); //
建立WebSocket連結物件 connection.connect(WEBSCOKET_IP,webSocketHandler);//呼叫connect連結方法,第一個引數為連結地址 第二個引數為回撥物件 WebSocketHandler webSocketHandler = new WebSocketHandler() {//回撥物件,重寫三個重要的方法. @Override public void onOpen() {//這個方法為開啟連線時會走,即剛開始建立連結,可在這裡向伺服器傳送資料(具體看個人需求
super.onOpen(); connection.sendTextMessage("data");//呼叫此方法向伺服器傳送資料,也可以傳送位元組陣列 } Override public void onTextMessage(String payload) {//這個是建立連結後接收到資料會回撥的方法 super.onTextMessage(payload); //資料都在這個引數payload裡面,這裡就拿到了資料, Log.e("data", payload); //當然,心跳包也會在這裡,可在這判斷下,是我們有用的資料就解析、處理,心跳包就不管 } Override
public void onClose(int code, String reason) {//見名知意,這個就是與webSocket斷開連結後的 回撥的方法,引數裡面帶了錯誤的資訊和狀態碼 super.onClose(code, reason); Log.e("data", "code" + code + "reason" + reason); } 這樣就讓安卓與WebSocket建立了長連結,看,是不是很簡單。至於jar包這裡不能新增附件,需要的直接回復郵箱我直接發。

相關推薦

通過WebSocket建立連結實時獲取資料

     前段時間公司在做的一個專案,需要實時獲取到最新的行情資料,行情資料每秒更新,當時考慮過用輪詢方式獲取,但是稍微推敲,很是不妥。當用戶量多了,每個客戶端都要去輪詢伺服器,給伺服器造成的壓力很大大

Android通過WebSocket建立一個連線(帶心跳檢測)從伺服器端接收訊息

   最近公司要做一款內部使用的工具類app,方便銷售部門打電話(其實就是在後臺有好多使用者資料,之前銷售部門同事撥打電話,需要自己從銷售後臺檢視使用者手機號等資訊,然後自己拿自己手機撥號,然後打出去。現在想實現銷售的同事,點選銷售後臺的按鈕,自己的手機直接撥號的功能)。為此

Java服務端模擬websocket客戶端建立連結之---WebSocketClient

    最近專案裡需要在Java服務端與c++進行websocket通訊,java_websocket.client.WebSocketClient外掛很好的解決了這個需求。    首先需要在pom.xml檔案中引入此依賴: <dependency> &

WebSocket非同步通訊,實時返回資料例項

定義類中的非同步方法 using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net.WebSockets;using System.Text;using System.Thre

php建立連結,與tcp即時通訊解決辦法

建立tcp連結,剛開始建立短連結,開啟,傳送資料,接收返回,關閉連線,這樣做能實現功能,但是,多個人同時操作,就會只有一個人成功,其他的失敗,剛開始流量少可以,但是流量多了就會造成阻塞,在網上找了資料,找了一下幾種解決方法: 一、php應用伺服器上部署一個local-proxy,php與loca

JS通過ajax方式從資料庫動態獲取資料的程式碼

原文地址:http://www.sharejs.com/codes/javascript/8182 <!DOCTYPE html> <html> <head> <script> function showCustomer(

java實現的highcharts與ajax結合動態實時獲取資料更新圖表

<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <% String categories="[ '狗', '貓', '兔子', '

RabbitMQ訂閱釋出的訊息,通過WebSocket實現資料實時推送到前端上顯

一、架構簡單概述  RabbitMQ訊息佇列服務善於解決多系統、異構系統間的資料交換(訊息通知/通訊)問題,並且可以訂閱和釋出,而隨著HTML5誕生的WebSocket協議實現了瀏覽器與伺服器的全雙工通訊,擴充套件了瀏覽器與服務端的通訊功能,使服務端也能主動向客戶端傳送資料

微信小程式——省市縣三級聯動,實時通過後臺呼叫PHP程式碼獲取資料

由於專案頻繁用到三級聯動,比如地區、時間、分類,這些網路上不能滿足,所以我們通過後臺呼叫的方式來實現 後臺我使用的是PHP語言 目錄結構: |-client |---pages |-----index |-------index.js //包含初始化資料和呼叫後臺的資料,

STM32F4+WIFI模組TCP連結伺服器,伺服器與安卓客戶端Websocket連結;實現監控資訊實時推送。

  哈哈哈哈哈!這是筆者第一次寫這種東西,專案是我們大二的一個大創組的專案:(雖然很沒創新,導師也一棒子打死了)但是我們還是硬著頭皮完成了。 1>硬體端:stm32f429,紅外線感應,esp8266模組,ov5640攝像頭,步進電機,等等。    主要是採集移動物

通過selenium實時獲取鬥魚主播熱度數據!鬥魚一哥居然是他?

val apt ont layer page caption ash 活動 setting 通過這個例子,學習使用chrome的開發者工具定位頁面元素的位置,並通過selenium調用瀏覽器,對網頁數據進行抓取。 隨意打開一個主播的頁面,我們想要抓取的熱度信息如下:

通過資料庫批量向kettle中插入資料建立trans和job的模板(按照不同的要求需要自行調整)

import psycopg2 # 用來操作資料庫的類 class GPCommand(object): # 類的初始化 def __init__(self): self.hostname = 'XXX.XX.X.XX' self.username

ubuntu資料建立連結方法

原文連結:https://blog.csdn.net/jiuyueguang/article/details/9350859 1:預備知識   -s 是代號(symbolic)的意思。   這裡有兩點要注意:第一,ln命令會保持每一處連結檔案的同步性,也就是說,不論你改動了哪一處,其它的檔案

資料結構(連結串列系列):連結串列建立連結串列刪除特定節點,連結串列氣泡排序,連結串列快速排序

一、連結串列的理解: 1,各個節點間地址存放可以不連續,雖說是表,但是指標存在是為了找到其他的節點,如果連續了,都沒必要用連結串列了。 2,各節點依賴上一節點,要找到某一個節點必須找到他的上一個節點,所以要訪問連結串列,必須要知道頭指標,然後從頭指標訪問開始。 3,各節點間原來是獨立的,本

HBULIDER怎麼和後臺資料庫進行連結獲取資料

首先我是用myecilpse來和hubilder進行跨域相連的, 1、需要在myeclipse裡面搭建一個自己的過濾器,程式碼如下: //過濾器 public class crossDomainFilter implements Filter{     &nbs

使用libvlc播放音樂,實時獲取位置、播放狀態、時,播放httpURL

#include <iostream> #include <unistd.h> #include "vlc/vlc.h" #include "libvlc.h" #include "libvlc_media_player.h" #include "libvlc_me

Vue.js 通過jQuery ajax獲取資料實現更新後重新渲染頁面

1. 引入jquery和vue.js <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script

C# 選擇檔案、選擇資料夾、開啟檔案(或者資料夾) 路徑中獲取檔案全路徑、目錄、副檔名、檔名稱 追加、拷貝、刪除、移動檔案、建立目錄 修改檔名、資料夾名!!

https://www.cnblogs.com/zhlziliaoku/p/5241097.html 1、選擇檔案用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;/

淘寶評價介面 - 實時獲取淘寶商品的評價晒單資料

接上篇文章 如何獲取淘寶天貓商品的詳情圖資料,在這裡繼續講獲取評價晒單資料,依舊是基於淘寶商品ID發起呼叫,同步獲取淘寶天貓商品的實時評價資料。 評價介面分為兩部分:第一是獲取TagList的評價分類標籤和評價總數;第二是獲取詳細評價資料。該介面相同的tid當天的簽名引數是可以複用的,所以在獲取第

springMVC通過post獲取資料中文亂碼問題

<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterE