久久久人妻视频免费-国产会所性服务视频在线-国产精品久久久久久av密臀-成人在线丰满少妇av

諾塔斯L9-E-POE智能卡讀寫器全兼容瀏覽器支持HTTPS協(xié)議

2020-04-28 13:31:00
諾塔斯智能科技
原創(chuàng)
3884

     自從諾塔斯智能科技發(fā)布L6-E智能卡讀寫器以來,我們在用戶反饋的功能需求中,了解到客戶在web瀏覽器上對智能卡讀寫器進行二次開發(fā)需要支持https協(xié)議,首先我們來回顧一下L6-E智能卡讀寫器功能,它是一款支持TCP/IP通信可以通過USB接口進行自定義IP地址,內(nèi)置了websocket組件的智能卡讀寫器。隨著越來越多的web應用比較重視安全性,大多數(shù)web應用已經(jīng)升級到https協(xié)議了。因此,我們需要將內(nèi)置的websocket組件功能進行升級,從而更好的配合客戶在web瀏覽器應用。

     首先,我們了解一下,什么是WebSocket協(xié)議,是html5的一種通信協(xié)議,該協(xié)議兼容我們常用的瀏覽器。例如Chrome、 Firefox、IE等。它可以使客戶端和服務端雙向數(shù)據(jù)傳輸更加簡單快捷,并且在TCP連接進行一次握手后,就可以持久性連接,同時允許服務端對客戶端推送數(shù)據(jù)。外加傳統(tǒng)模式的協(xié)議一般HTTP請求可能會包含較長的頭部,但真正有效的可能只有小部分,從而就占用了很多資源和帶寬。因此WebSocket協(xié)議不僅可以實時通訊,支持擴展;也可以壓縮節(jié)省服務器資源和帶寬。 WS協(xié)議和WSS協(xié)議兩個均是WebSocket協(xié)議的SCHEM,兩者一個是非安全的,一個是安全的。也是統(tǒng)一的資源標志符。就好比HTTP協(xié)議和HTTPS協(xié)議的差別。非安全的沒有證書,安全的需要SSL證書。(SSL是Netscape所研發(fā),用來保障網(wǎng)絡中數(shù)據(jù)傳輸?shù)陌踩裕饕沁\用數(shù)據(jù)加密的技術,能夠避免數(shù)據(jù)在傳輸過程被不被竊取或者監(jiān)聽。)其中WSS表示在TLS之上的WebSocket。WS一般默認是80端口,而WSS默認是443端口,大多數(shù)網(wǎng)站用的就是80和433端口。WS和WSS的體現(xiàn)形式分別是TCP+WS AS WS ,TCP+TLS+WS AS WS。服務器網(wǎng)址就是 URL。最后再說下WebSocket協(xié)議的特點:建立在 TCP 協(xié)議之上,服務端實現(xiàn)容易;與 HTTP 協(xié)議有良好的兼容性,握手時不容易被屏蔽,可以通過各種 HTTP 代理服務器;數(shù)據(jù)輕量,實時通訊;可以發(fā)送文本和二進制數(shù)據(jù)。不限制同源,客戶端可以與任意服務器端進行通訊。因此WebSocket協(xié)議的出現(xiàn),為很多人解決了關于擴展以及兼容性協(xié)議的煩惱問題。

    說一千道一萬,目的就是解決瀏覽器兼容問題。于是,諾塔斯L9-E-POE智能卡讀寫器一款瀏覽器全兼容智能卡讀寫器誕生了。它滿足了智能卡讀寫器二次開發(fā)支持https協(xié)議 客戶的需求,采用標準POE交換機供電,無需其它外部供電設備,從而有效的解決了既要部署網(wǎng)絡傳輸線纜,又要額外增加電源適配器的麻煩。設備可以自定義IP地址,區(qū)別于傳統(tǒng)智能卡讀寫器通過USB、RS232等接口通信,不會受到上位機硬件接口數(shù)量限制,用戶可以根據(jù)自己需求靈活的進行網(wǎng)絡擴展。

諾塔斯L9-E-POE智能卡讀寫器配置如下:

電氣特征

外殼尺寸

105 mm (長) x 70 mm (寬) x 12.8 mm (高)

產(chǎn)品重量

80.0 g

硬件接口

RJ45標準網(wǎng)絡接口

通訊協(xié)議

TCP/IP、UDP

讀卡距離

50mm—70mm(視標簽類型和尺寸而定)

工作電壓

額定電壓 5V USB供電 、可定制內(nèi)置鋰電池或POE供電

工作電流

200 mA (工作); 50 mA (待機); 100 mA (常規(guī))

工作溫度

0-50°C

工作頻率

13.56 MHz

防沖突機制

內(nèi)建防沖突特性(任何時候都只能訪問1張標簽)

人機互動

雙色LED指示燈、蜂鳴器

與智能卡通信協(xié)議

ü  ISO 14443-4 A和B類 非接觸式智能卡符合 PBOC2.0

ü  Mifare 系列

ü  NFC (ISO/IEC 18092)標簽

操作系統(tǒng)

 Win98, Win ME, Win NT 4.0, Win 2000, Win 2003, Win 2003 R2, Win XP, Win Vista, Win 2008, Win 7, Win 8 ,Win10等

 Win 2003 x64, Win 2003 R2 x64, Win XP x64, Win Vista x64, Win 2008 x64, Win 2008 R2 x64, Win 7 x64, Win 8 x 64, Win 2012 x64

 Win CE 5.0 and 6.0

 Linux?

 Android? 3.1 及以上版本

 STM32、ARM等單片機系統(tǒng)等

開發(fā)語言

ü  VB、VB6、 PB9、doNet

ü  VC、C++、C#

ü  Dephi、JAVA 、JavaScript、QT

ü  Android開發(fā)語言、Linux開發(fā)語言等

支持瀏覽器

谷歌Chrome瀏覽器、IE瀏覽器、360瀏覽器、QQ瀏覽器、搜狗瀏覽器、火狐瀏覽器、遨游瀏覽器、Opera瀏覽器、Safari瀏覽器等,此處不一一列舉。

典型應用

電子錢包

會員支付

積分系統(tǒng)

身份驗證

智能海報

自動售貨機

智慧醫(yī)療

充電樁計費

智能收費

諾塔斯L9-E-POE智能卡讀寫器產(chǎn)品詳圖

諾塔斯L9-E-POE智能卡讀寫器

諾塔斯L9-E-POE智能卡讀寫器內(nèi)部圖

諾塔斯L9-E-POE智能卡讀寫器瀏覽器開發(fā)部分范例代碼

function ConnectServer(){
			var protocolStr = document.location.protocol;
			document.getElementById('log').innerHTML = '<li><b>'+ protocolStr +'</b></li>' + document.getElementById('log').innerHTML;
			try {
				nCommandIndex = 0;
				strIp = document.getElementById('strLotusCardDeviceIp').value;
				strPort = document.getElementById('strLotusCardDevicePort').value;
				if(protocolStr == "https:")
				{
					wsUrl = 'wss://'+ strIp +':'+  strPort;
				}
				else
				{
					wsUrl = 'ws://'+ strIp +':'+  strPort;
				}
				socket = new WebSocket(wsUrl); 
      } catch (evt) {
         document.getElementById('log').innerHTML = '<li><b>'+getNowFormatDate()+'#new WebSocket error:'+ evt.data+'</b></li>' + document.getElementById('log').innerHTML;
         socket = null;
         if (typeof(connCb) != "undefined" && connCb != null)
             connCb("-1", "connect error!");
         return;
      }			
			socket.onopen = function ()
				{  
					document.getElementById('log').innerHTML = '<li><b>'+getNowFormatDate()+'#連接服務器成功</b></li>' + document.getElementById('log').innerHTML;
					document.getElementById('status').innerHTML = 'Socket Open';
					document.getElementById('status').className = 'online';
				};
			socket.onclose =  function(event)
				{  
					document.getElementById('log').innerHTML = '<li><b>'+getNowFormatDate()+'#斷開連接:' + event.wasClean + '</b></li>' + document.getElementById('log').innerHTML;
					document.getElementById('status').innerHTML = 'Socket Closed';
					document.getElementById('status').className = 'offline';
				};
<table width="100%">
	<tr style="width:100px; height:40px;">
		<td>
			讀卡器IP:
		</td>		
		<td>
			<input type="text" value="wss.lotussmart.cc" id="strLotusCardDeviceIp" style="width:150px; height:30px;" />
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			讀卡器PORT:
		</td>		
		<td>
			<input type="text" value="31213" id="strLotusCardDevicePort" style="width:150px; height:30px;" />
		</td>
	</tr>
	
	<tr style="width:100px; height:40px;">
		<td>
			狀態(tài)
		</td>
		<td>
			<p id="status"></p>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td colspan="2">
			<h3>通信函數(shù):1、連接服務器 2、執(zhí)行字符串函數(shù)并解析結果 3、斷開連接</h3>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			連接服務器:
		</td>
		<td>
			<INPUT id = "ConnectServer"  type=button value="ConnectServer" onclick="javascript:ConnectServer();" style="width:150px; height:30px;"/>			
		</td>
		
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			關閉連接:
		</td>		
		<td>
			<INPUT id = "CloseConnection"  type=button value="CloseConnection" onclick="javascript:socket.close();" style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			獲取連接狀態(tài):
		</td>
		<td>
			<INPUT id = "ConnectionStatus"  type=button value="ConnectionStatus" onclick="javascript:document.getElementById('log').innerHTML = '<li><b>#status:' + GetSocketStatus() + '</b></li>' + document.getElementById('log').innerHTML;"
			 style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			獲取MCU序列號:
		</td>		
		<td>
			<INPUT id = "OpenDevice"  type=button value="GetMcuSerailNo" onclick="javascript:ExecStringCommand('GetMcuSerailNo')" style="width:150px; height:30px;"/>
		</td>
	</tr>
	
	<tr style="width:100px; height:40px;">
		<td>
			蜂鳴:
		</td>		
		<td>
			<INPUT id = "Beep"  type=button value="Beep" onclick="javascript:ExecStringCommand('Beep,10');" style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			獲取M1卡號:
		</td>		
		<td>
			<INPUT id = "GetCardNo"  type=button value="GetCardNo" onclick="javascript:ExecStringCommand('GetCardNo,38');" style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			裝載密碼:
		</td>		
		<td>
			<INPUT id = "LoadKey"  type=button value="LoadKey" onclick="javascript:ExecStringCommand('LoadKey,96,0,FFFFFFFFFFFF');" style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			驗證密碼:
		</td>		
		<td>
			<INPUT id = "Authentication"  type=button value="Authentication" onclick="javascript:ExecStringCommand('Authentication,96,0');" style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			讀數(shù)據(jù)扇區(qū)0塊1:
		</td>		
		<td>
			<INPUT id = "M1Read"  type=button value="M1Read" onclick="javascript:ExecStringCommand('Read,1');" style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			寫數(shù)據(jù)扇區(qū)0塊1:
		</td>		
		<td>
			<INPUT id = "M1Write"  type=button value="M1Write" onclick="javascript:ExecStringCommand('Write,1,0123456789abcdef0123456789abcdef');" style="width:150px; height:30px;"/>
		</td>
	</tr>	
	<tr style="width:100px; height:40px;">
		<td>
			讀數(shù)據(jù)扇區(qū)0塊1:
		</td>		
		<td>
			<INPUT id = "NtagRead"  type=button value="NTAGRead" onclick="javascript:ExecStringCommand('Read,4');" style="width:150px; height:30px;"/>
		</td>
	</tr>
	<tr style="width:100px; height:40px;">
		<td>
			寫數(shù)據(jù)NTAG4PAGE:
		</td>		
		<td>
			<INPUT id = "NtagWrite"  type=button value="NtagWrite" onclick="javascript:ExecStringCommand('NtagWrite,4,012345678');" style="width:150px; height:30px;"/>
		</td>
	</tr>	
	<tr style="width:100px; height:40px;">
		<td>
			中止M1卡片:
		</td>		
		<td>
			<INPUT id = "M1Halt"  type=button value="M1Halt" onclick="javascript:ExecStringCommand('Halt');" style="width:150px; height:30px;"/>
		</td>
	</tr>		
	<tr style="width:100px; height:40px;">
		<td>
			清除日志:
		</td>		
		<td>
			<INPUT id = "ClearLog"  type=button value="ClearLog" onclick="javascript:document.getElementById('log').innerHTML = '';" style="width:150px; height:30px;"/>
		</td>
	</tr>		
	<tr>
		<td colspan="2">
			<h3>日志</h3>
		</td>
	</tr>
	<tr>
		<td colspan="2">
			<ul id="log" style="overflow: auto; list-style: none; padding:0; background:#ffffff; font-size:small; border-style:solid; border-color:#c0c0c0"></ul>
		</td>
	</tr>  </table>
產(chǎn)品完整測試頁面請點擊這里,諾塔斯智能科技網(wǎng)絡版智能卡讀寫器LotusCard WEB Socket 演示頁面    



發(fā)表評論
評論通過審核后顯示。
熱門文章推薦
關于PSAM卡、SAM卡、SIM卡的特征和區(qū)別 2019-03-22 由于人們對PSAM卡、SAM卡、SIM卡的概念理解不到位加之很少仔細的對PSAM卡、SAM卡、SIM卡實物進行區(qū)別,容易將PSAM卡、SAM卡、SIM卡混為一談。諾塔斯智能科技就PSAM卡、SAM卡、SIM卡三者特征和作用進行介紹,幫助大家對PSAM卡、SAM卡、SIM卡進行深刻的認識和區(qū)分。
M1卡常見問題和處理方法 2019-02-21 M1卡是恩智浦出品的芯片縮寫,全稱為NXP Mifare1系列,常用的有S50及S70兩種型號,截止到2013年11月4日,已經(jīng)有國產(chǎn)芯片與其兼容,利用PVC封裝M1芯片、感應天線,然后壓制成型后而制作的卡即是智能卡行業(yè)所說的M1卡。M1卡的優(yōu)點是可讀可寫的多功能卡,缺點是:價格稍貴,感應距離短,目前適合非定額消費系統(tǒng)、停車場系統(tǒng)、門禁考勤系統(tǒng)等,目前應用最廣泛的非接觸式IC卡。
NFC數(shù)據(jù)交換格式(NDEF)規(guī)范 2019-05-28 為實現(xiàn)標簽和NFC設備,及NFC設備之間的交互通信,NFC論壇定義了稱為NFC數(shù)據(jù)交換格式(NDEF)的通用數(shù)據(jù)格式。 NDEF是輕量級的緊湊的二進制格式,可帶有URL,vCard和NFC定義的各種數(shù)據(jù)類型。
非接觸式IC卡(M1卡)區(qū)塊讀寫控制 2019-02-21 非接觸式IC卡系列中的Mifare One (M1卡)的優(yōu)點是可讀可寫的多功能卡,缺點是:價格稍貴,感應距離短,目前適合非定額消費系統(tǒng)、停車場系統(tǒng)、門禁考勤系統(tǒng)等,目前應用最廣泛的 非接觸式IC卡。諾塔斯智能科技專業(yè)從事非接觸式IC卡讀寫器的研發(fā)與銷售,為各行業(yè)用戶提供專業(yè)的IC卡系統(tǒng)解決方案。
聯(lián)系我們
聯(lián)系人: 張經(jīng)理
電話: 400-023-6659
傳真: 023-68798110
Email: 843718693@qq.com
QQ: 843718693
微信: Lotus-Smart
微博: lotusreader
旺旺: 諾塔斯智能科技有限公司
地址: 重慶市江北區(qū)宏帆路36號宏帆天地1棟6樓
  • 諾塔斯智能科技在線客服
    在線客服
  • 重慶諾塔斯智能科技有限公司微信公眾號
    關注微信
  • 諾塔斯智能科技網(wǎng)上商城
    網(wǎng)上商城
移動訪問